LoginSignup
11
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-07-09

今日からTipSLACKの中身を解剖していきます。

まずはもっとも基本となるXEM送金についてです。
比較的簡単と言われるNEMを利用したアプリ開発ですが、そのライブラリの最高峰とも言えるnem-libraryはTypeScriptの使用を推奨しており、やはり敷居が高いと言わざるを得ません。

今回はnode.js を利用した完全なピュアJavaScriptでの実装方法を紹介します。

環境構築にはこちらの記事を参考にしてください。
amazon linuxでNode.jsのNEM開発環境を爆速で整える

ライブラリは以下のようにrequireします。

require
const nemlibrary = require('nem-library');
const NetworkTypes  = nemlibrary.NetworkTypes;
const Account = nemlibrary.Account;
const Address = nemlibrary.Address;
const TimeWindow = nemlibrary.TimeWindow;
const XEM = nemlibrary.XEM;
const PlainMessage = nemlibrary.PlainMessage;
const TransferTransaction = nemlibrary.TransferTransaction;
const TransactionHttp = nemlibrary.TransactionHttp;


メインネットへの接続は以下の1行で終わり。これは便利です。

bootstrap
nemlibrary.NEMLibrary.bootstrap(NetworkTypes.MAIN_NET);

そして肝心の送金部分です。

node.js

const PRI_KEY = "aaaaaaaaaaaabbbbbbbbbbbcccccccccccccc";
const address = "NXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZZZZZZZ";
const amount = 1;
const message = "これはテストです";

const transferTransaction  = TransferTransaction.create(
    TimeWindow.createWithDeadline(),
    new Address(address),
    new XEM(amount),
    PlainMessage.create(message)
);

const account = Account.createWithPrivateKey(PRI_KEY);
const signedTransaction = account.signTransaction(transferTransaction);

const transactionHttp = new TransactionHttp();
transactionHttp.announceTransaction(signedTransaction)
.subscribe(
    value => {console.log( "リクエスト結果:\n" + value.message);},
    err => {console.log( "失敗:\n" + err.toString());}
);

まず、TransferTransaction.create()でトランザクションを作成します。
引数に指定するのは、締め時間、送信先のアドレス、XEM量、メッセージです。

次に送金したい人の秘密鍵からAccountクラスを生成します。
そして、先ほど作ったTransactionをAccountクラスのsignTransactionで署名します。

ネットワークに乗せるにはTransactionHttpクラスを利用します。announceTransactionを呼び出すと、その結果をsubscribeで捕捉することができます。第一引数に成功時のメッセージ、第二引数に失敗時のメッセージが格納されるので、キャッチして画面に表示してください。

どうですか?とっても簡単ですね!
これを読んでもっと多くの方がNEMアプリ開発に興味をもっていただけると嬉しいです!

次はmosaicの送金にチャレンジします。ちょっと難しくなりますが、マスターすれば可能性はもっと広がりますよ!お楽しみ!

11
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
1