【NEM開発入門】NEM Libraryを利用して独自通貨(モザイク)を送金する

XEMの送金の実装方法は分かった!!そうすると次は独自通貨(モザイク)も送金してみたくなっちゃったりして・・・。

まつしん

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

以前NEM Libraryを用いてXEMを送金するコードを実装しました。

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

2018年7月26日

今回は独自通貨(モザイク)の残高取得送金になります。

また事前準備として独自通貨(モザイク)を発行して準備する必要があります。準備方法が分からない方は下記の2つの記事が参考になると思います。

ただしすでに何かしらのモザイクをテストネットで保有している場合は発行する必要はありません。ちなみにXEMもモザイクの1つになります。

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

2018年7月21日

【解説】NEMのモザイクを使って独自通貨をTIpNEMで投げ銭するまで

2017年11月3日
テストネット、メインネットとは?

テストネットは開発者が新しい機能を追加して、その挙動を検証するテスト環境です。つまり実際のお金を支払わずにXEMを無料で入手して利用することができます。メインネットは、現実のトランザクションが行われ記録されます。

なのでもちろんテストネットで使われる通貨はメインネットの通貨と互換性はありません。

 

ちなみにもっと早く試してみたかったのですがテストネット環境でもメインネットと同様にモザイクを発行するのに約110XEM(ネームスペースレンタル代で100XEM、モザイクレンタル代で10XEM+手数料が合計0.3XEM)ほど必要になります。

そしてテストネットのXEMが枯渇し入手しにくい状況となっていたので諦めていました。

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

NEM Libraryでモザイク送金の実装方法

Field 180598 640

保有しているモザイクを取得する

保有しているモザイク一覧の取得です。ほぼ数行で取得できちゃいます。

例によってテストネットに接続していますが、メインネットに接続させたい場合は上から2行目のコードを以下のように変更してください。

モザイクを送金する

次にモザイク送金のコードです。情報としては送金先アドレス送金元アカウントの秘密鍵モザイク名送金量になります。

XEMの送金より少し複雑なコードとなっています。

動きとしては総供給量などを元に手数料を計算するためモザイク情報をテストネットに問い合わせています。その問い合わせ結果を元にトランザクションを組み立て署名してから送金を実行するという流れです。そのためにrxjsというライブラリを使うようにしています。

またコードを見てもわかる通り配列を扱っていますので一度に複数のモザイクの送金が可能です。

では次に自分の勉強も兼ねてVue.js + TypeScriptでサンプルアプリを作りましたので動作を見ていきましょう。

保有しているモザイクを取得して表示し、モザイクの送金ができるのみのシンプルな作りとなっています。コードを見るとStoreの利用方法等のVue.jsの基本の勉強にもなるかもしれません。

今回実装したコードはこちらにおいています。

 

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

Dylan de jonge 449577 unsplash

動作環境

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

  • Mac OS High Sierra v10.13.5 
  • node v10.0.0
  • yarn v1.6.0
  • vue v2.5.2
  • typescript v3.0.0
  • new-library v1.0.9

 

今回は最近(2018/8/10)バージョンが3系にアップしましたVue CLIを利用しています。

それによって新しいプロジェクトを作成する場合に選択可能なオプションが増え、最初からTypeScriptを選べるようになりました。

 

セットアップ

  リポジトリをクローン

 
 

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

 

ローカルサーバを起動

 

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

 

Nem library mosaic vue sample

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

動作確認

テストネットのアドレスを入力して「保有しているモザイク情報を取得する」をクリック。

Nem library mosaic vue sample

 

保有しているモザイクが一覧で表示されたらOK!

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

Nem library mosaic vue sample

 

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

 

Nem library mosaic vue sample

 

少し待って再度トップ画面でアドレスを入力しますと残高が減っていることが確認できます。もちろんNanoWalletからでも確認できます。

また送金時にXEMを手数料として支払っているのでXEMも減っていることも確認できます。

Nem library mosaic vue sample

 

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

まとめ

Caroline attwood 225496 unsplash

今回はNEM LIbraryを用いて保有しているモザイク情報の取得とモザイクの送金を実装してみました。

この辺りは以前XEMの送金のコードも書いているので同様に簡単に実現できました。

このモザイクの機能ができるとどういう点で嬉しいかというと、例えばサービス内でモザイクを独自ポイントのような扱いができます。

そうするとすでにNEM側でAPIが用意されていることからポイント機能の実装を時間をかけずに実現できる別のサービスとの連携が簡単、取引所に上場したら売買できるというようなメリットがあるかと思います。逆にネームスペース・モザイクのレンタル費用がかかる送金詰まりの可能性がある、送金に手数料がかかる等のデメリットもあります。

 NEMを機能実現方法の選択肢の1つとして検討してみると面白いのではないでしょうか。

 

参考記事

コメントを残す

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