【faucet開発】JSON-RPCでmonacoindを操作してみる – その2

今回は実際にMONAを動かします

前回に引き続き、JSON-RPCでmonacoindを操作していきます。前回の記事はこちらをご参照ください。

今回は実際にMONAを送ったり受け取ったりするため、あらかじめ他のアドレスから1.1MONAを入金しておきました。listaccounts や getbalance で masaki の残高を確認すると確かに入金されていることがわかります。

2種類の送金API

MONAを他のモナーコインアドレスへ送金するAPIとしては move と sendfrom の2種類があります。moveは自分のウォレット内(ローカルのmonacoind内)でのMONAの移動に利用でき、sendfromは自分だけでなく他のウォレットへの移動も可能です。

move はmonacoinネットワークへ送金リクエストを投げるのではなく、あくまでも自分のウォレット内でMONAを移動するだけです。したがって、マイナーによる承認は不要であり、トランザクション手数料とマイナー手数料は発生しません。承認が不要ということは、APIを叩いた次の瞬間にはMONAの移動が完了するため、スピードも非常に早いです。

move

MONAをウォレット内(ローカルのmonacoind内)で移動します。

引数

1: str,送金元のアカウント名
2: str,送金先のアカウント名
3: str,送金額
4: int,最低承認数
5: str,送金履歴に残すコメント

実行例: masaki から sae に 0.3MONA を移動する

まず、新アカウント sae を作成します。

次に、各アカウントの残高を確認します。sae は0MONA、masaki は1.1MONAです。

masaki から sae に0.3MONAを移動します。

再度、各アカウントの残高を確認すると sae に0.3MONAが移動されています。

返り値: 成功時はtrue、失敗時はfalseが返る

sendfrom

sendform はMONAを他のモナーコインアドレスに送金するAPIです。外部のウォレットに送金する場合 move は使えませんので sendfrom を使うことになります。

引数

1: str,送金元のアカウント名
2: str,送金先のモナーコインアドレス
3: str,送金額
4: int,最低承認数
5: str,送金履歴に残すコメント
6: str,相手に送るコメント

実行例: masaki から sae に 0.5MONA を送金する

sendfrom はアカウント名ではなくアドレスを指定して送金しますので、まずは sae のアドレスを確認します。

送金先とする sae のアドレスは MUWTFVQzvQkxGeuZm1kJDouheXHEU7z62L のようです。送信元はアカウント名で指定しますので masaki で構いません。では、早速0.5MONA送ってみましょう。

何やらエラーが返ってきました。はい、前回ウォレットにロックをかけたんでしたね。10秒だけ解除してからもう一度 sendfrom してみましょう。

今度は無事にリクエストを投げることができました。トランザクションIDが返ってきますので、このトランザクションの進捗は こちら で確認できます。

この記事を書いている現時点ではまだ承認されていないため masaki の残高は減りましたが sae の残高は増えていない状態です。また
masaki の残高からは手数料として 0.00045MONA がさらに引かれています。

listtransactions

listtransactionsはアカウントの入出金履歴を確認するAPIです。先ほどの masaki の送金履歴を確認してみましょう。

引数

1: str,対象のアカウント名
2: str,直前の入出金履歴から遡って取得する履歴の数(デフォルト:10)

実行例: masaki の履歴を1件取得する

返り値: 成功時は履歴情報、失敗時はerrorが返る

おわり

JSON-RPCを使って無事に送金することができました。ここまででfaucetアプリを作るのに必要なmonacoind周りのAPIは一通り使用したと思いますので、次回は趣向を変えてフロント部分を作ろうかなーなどと思っております。って書いてる間に無事に sae への送金が承認されました。よかった。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする