先日はcsharp2nemを使ってNEMのウォレットの情報を取得する方法について書きました。
www.k-karakuri.com
今回はcsharp2nemを使ってXEMやモザイクを送信する方法について書きます。
csharp2nemを使って送金の準備をする
接続するネットワークを選択する
前回同様、接続先をテストネットかメインネットか指定します。
var connection = new Connection();
connection.SetTestnet();
本番のメインネットの場合はこちら。
var connection = new Connection();
connection.SetMainnet();
秘密鍵からクライアントインスタンスを作成する
続いて送金のためにクライアントインスタンスを作成します。
var factory = new PrivateKeyAccountClientFactory(connection); var client = accountFactory.FromPrivateKey("ここで秘密鍵を渡します");
あとは作成したPrivateKeyAccountClient型のclientを使って送金します。
csharp2nemを使って送金する
XEMを送金する
XEMはTransferTransactionDataに情報を持たせてPrivateKeyAccountClientに渡すことで送金します。まずはこのTransferTransactionDataインスタンスを作成します。
data = new TransferTransactionData() { Amount = amount, // 1XEMなら1 Message = message, RecipientAddress = address, };
続いて作成したTransferTransactionDataインスタンスをPrivateKeyAccountClientのBeginSendTransactionに渡せば送金が開始されます。
var result = client.BeginSendTransaction(data); // 送金完了まで待機する while (!result.IsCompleted) ;
モザイクを送金する
XEMもモザイクの1つというのがNEMの特徴ですが、送金のパラメーターの定義はXEMとその他のモザイクとでは変わるようです。
data = new TransferTransactionData() { Amount = 1000000, Message = message, RecipientAddress = address, ListOfMosaics = new List<Mosaic>() { new Mosaic("NameSpaceの名前", "モザイク名", 100) } // 100モザイクを送る場合 }, };
かなり違います。特に送金額の設定がややこしいです。AmountがXEMとその他のモザイクでは解釈が変わるんですね。結論からいうと、モザイクが小数点以下を考慮する必要がなければAmountは10,000,000固定で良さそう。
cryptocurrency.muragon.com
送金についてはXAMと同様に可能です。
var result = client.BeginSendTransaction(data); // 送金完了まで待機する while (!result.IsCompleted) ;