【NEM開発入門】NEM Libraryを利用して送金する

テスト用のアドレスXEMが準備できた!でもせっかくならAPI利用の実装方法もさくっと分かったりしないかな・・・。

まつしん

ライブラリを利用した実際のコードを見せましょう!!

前回はNEMのAPIを利用するためにテスト用アドレスの作成等の環境準備の手順を解説しました。

【NEM開発入門】仮想通貨NEMのAPIを利用した開発の事前準備をする

2018.07.21

今回はせっかく開発の準備したのでAPIを利用したライブラリの具体的な実装方法を紹介します。実装内容としては基本的なアカウント情報の取得XEMの送金にしました。

利用するライブラリとしてはJavaScriptNEM Libraryにしました。JavaScriptでは他にNEM-sdknem-apiと複数存在していますが、このようなツイートを見かけたので、NEM Libraryを利用することに。 

NEM2-SDKとは現在開発中のNEMの次のバージョンであるNEM2(Catapult)のライブラリになります。

NEM2での新機能について詳しくしりたい方はこちらの記事が参考になります。

 

またAPIを呼び出すライブラリは他にも複数の言語であります。

 

それではコードを見ていきましょう!

NEM Libraryの実装方法

Bulldozer 2195329 640

アカウント情報を取得する

まずはアカウント情報の取得です。たったこれだけ。いくつか定数の定義をしていますが実質アカウント情報の取得している箇所は数行だけです。

 今回はテスト環境(TestNet)に接続していますが本番環境に(MainNet)に接続させたい場合は上から4行目のコードを以下のような記述にします。

 

送金する

次に送金のコードです。送金するには、情報として送金元アカウントの秘密鍵、送金先のアドレス、送金量が必要です。

 

流れとしてはまずは送金トランザクションを作成、署名してから送金を実行させます。コードとしては以上です!そんなに難しいことはしていないのではないでしょうか?

さらにもう一歩進んでReact.jsでサンプルアプリを作ってみました。アカウント情報の取得XEMの送金ができるのみのシンプルな作りとなっています。動作を見てみるとイメージしやすいのではないでしょうか?

今回実装したコードはこちらです。

サンプルコードを動作させる

Building 768815 640

動作環境

動作させた環境は以下になります。 

  • Mac OS High Sierra v10.13.5 
  • node v10.0.0
  • yarn v1.6.0
  • react v16.4.1
  • new-library v1.0.7

セットアップ

 リポジトリをクローン

 

各ライブラリをインストール

 

ローカルサーバを起動

 

トップ画面(http://localhost:3000)にアクセス。エラーが発生していないければOK。

NEM Library Transfer Sample 🔊

 それでは次に動作を確認していきましょう。

動作確認

テスト用のアドレスを入力して「アカウント情報を取得する」をクリック。

NEM Library Transfer Sample 🔊

残高が表示されたらOK。

続いて送金のテストをするために送金先のアドレス、取得したアカウント情報に紐づく、秘密鍵送金金額を入力して「XEMを送金する」をクリック。

NEM Library Transfer Sample

 

 送金結果に「送金成功」と表示されればOK!

NEM Library Transfer Sample

 

少し待って画面をリロードして残高が減っていることも確認できます。もちろんNanoWalletからでも確認できるはずです。

ちなみに0.1は送金の手数料のため入力した2ではなく2.1XEM減っています。

NEM Library Transfer Sample

 

またトップ画面に戻って再度フォームに送金先のアドレスを入力すると、着金していることが確認できるはずです!

 サンプルコードの動作はここまでになります。

 

まとめ

Architecture 1719526 640

 

今回はNEM Libraryを用いてアカウント情報の取得とXEMの送金を実装してみました。

ライブラリを使えば簡単に実装できることがわかったと思います。

次はよりサービスを作るときにより使いそうなモザイクの作成、送金や別のライブラリでの実装方法を紹介したいです。

 

参考

nem-libraryを利用してJavaScriptでXEM送金する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です