今回はnode.jsのeosjsモジュール(eosjs v16.0.9)を使って送金するプログラムを作ってみましょう。
できるだけ誰でもできるようにコピペ形式でも使えるようにしています。
EOS送金プログラムの型
今回もできるだけコピペだけで対応できるようにEOS送金のプログラムの型を紹介したいと思います。
/* 仮想通貨EOSを送金する関数 */
function transfer(sPermission, sSendAccount, sRecAccount, fAmount, sSymbol, sMessage){
options = {
authorization:[`${sSendAccount}@${sPermission}`],
broadcast: true,
sign: true
}
/* 送金枚数を数字型に変換する */
var num = new Number(fAmount);
/* nullなら空白にする */
if(sMessage == null) sMessage = '';
/* 送金する */
eos.transfer(sSendAccount, sRecAccount, String(num.toFixed(4)) + ' ' + sSymbol, sMessage, options).then(res => {
console.log('sent: ', res);
}).catch(err => {
console.error('error: ', err);
});
}
上記を前回のプログラムに貼り付けるだけで動作します。
機能の説明は以下の通りになります。
transfer( sSendAccount, sRecAccount, fAmount, sSymbol, sMessage )
■各パラメーターの説明
sRecAccount = 送金元のアカウント名
sRecAccount = 送金先のアカウント名
fAmount = 送金する枚数
sSymbol = トークンシンボル
sMessage = メッセージ(nullを入力すると空白で送信する)
■使い方
(メッセージを添える場合)
transfer(‘eosersbank45’, ‘eosersbank11’, 1.0000, ‘EOS’, ‘てゃんでぃ!行くぜ!’);
(メッセージを添えない場合)
transfer(‘eosersbank45’, ‘eosersbank11’, 1.0000, ‘EOS’, null);
フルコード
/* EOSモジュールを読み込む */
const Eos = require('eosjs');
/* EOSブロックチェーンを読み込む(今回はテスト版のためJungleテストネット使用) */
eos = Eos({
keyProvider: '5K2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
httpEndpoint: 'https://jungle2.cryptolions.io:443',
chainId: 'e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473',
});
/* EOSを送金する関数 */
function transfer(sPermission, sSendAccount, sRecAccount, fAmount, sSymbol, sMessage){
options = {
authorization:[`${sSendAccount}@${sPermission}`],
broadcast: true,
sign: true
}
var num = new Number(fAmount);
if(sMessage == null) sMessage = '';
eos.transfer(sSendAccount, sRecAccount, String(num.toFixed(4)) + ' ' + sSymbol, sMessage, options).then(res => {
console.log('sent: ', res);
}).catch(err => {
console.error('error: ', err);
});
}
/* 送金を実行する */
transfer("active", "nodejstest45", "heliosselene", 0.0001, "EOS", null);
最後に
この関数は、ある程度コピペで対応できるようにしています。
もうすこし作り込むのであればテキストボックスを用意して、そこにアカウントと枚数を入力してボタンを押したら送金するというものも作れると思います。
次回はステーキングしてリソースを確保する関数を紹介したいと思います。