仮想通貨EOS相場
EOSJS

node.jsで簡単EOSステーキングプログラミング(eosjs v16.0.9)

前回は仮想通貨EOS(イオス)を送金するプログラミングをやっていきました。

今回はnode.jsを介してEOSの送金などに重要なリソースを確保するステーキングするプログラミングを行っていきたいと思います。

EOSをステーキングするプログラム

それでは早速仮想通貨EOSの送金に重要なリソースを確保するためのステーキングをScatter上で走らせるプログラムを組んでいきましょう。

ステーキングするコードは以下のとおりです。

/* EOSをステーキングする関数 */
function stake_resources(sStaker, sRecAccount, fNetQuantity, fCpuQuantity, bTransfer){

  /* NETに割り振る枚数を数字型にする */
  var nNum = new Number(fNetQuantity);
  /* CPUに割り振る枚数を数字型にする */
  var cNum = new Number(fCpuQuantity);

  /* 転送フラグ変数を定義する */
  var sendflug = 0;
    
  if(bTransfer == false)
    sendflug = 1;

  /* EOSをステーキングする */
  eos.transaction(tr => {
    tr.delegatebw({
      from: sStaker,
      receiver: sRecAccount,
      stake_net_quantity: String(nNum.toFixed(4)) + ' EOS',
      stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS',
      transfer: sendflug
    });
    }).then(function(data){
     /* ステーキングに成功したら結果をコンソール上に表示する */
     console.log(data);
  }).catch(function(error){
     /* ステーキングに失敗したら結果をコンソール上に表示する */
     console.log(error);
  });
}

上記をコピペで追加すれば使えるようになります。
関数の使い方は以下のようになります。

stake_resources(sStaker, sRecAccount, fNetQuantity, fCpuQuantity, bTransfer)

■各パラメーターの説明
sStaker = 文字列:ステーキングするEOSアカウント(原則自分のアカウントを指定する)
sRecAccount = 文字列:リソースを割り振るEOSアカウント(原則自分のアカウントを指定する)
fNetQuantity = 浮動小数点型:NETに割り振る枚数を入力する。
fCpuQuantity = 浮動小数点型:CPUに割り振る枚数を入力する。
bTransfer = BOOL型:trueならEOSを転送しない、falseならEOSを転送する。

■使い方
(EOSを転送しない場合)
stake_resources(‘eosersbank11’, 0.0001, 0.0001, true);
(EOSをステーク先に転送する場合)
stake_resources(‘eosersbank12’, 0.0001, 0.0001, false);

※falseの場合、自分に指定するとエラーが出ます。

フルコード

/* EOSJSのモジュールをインポート */
const Eos = require('eosjs');

/* EOSブロックチェーンの接続設定をする(今回はJungleテストネットに接続します) */
eos = Eos({
    keyProvider: '5K2Kxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    httpEndpoint: 'https://jungle2.cryptolions.io:443',
    chainId: 'e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473',
});

/* EOSをステーキングする関数 */
function stake_resources(sStaker, sRecAccount, fNetQuantity, fCpuQuantity, bTransfer){

  var nNum = new Number(fNetQuantity);
  var cNum = new Number(fCpuQuantity);

  var sendflug = 0;
    
  if(bTransfer == false)
    sendflug = 1;

  eos.transaction(tr => {
    tr.delegatebw({
      from: sStaker,
      receiver: sRecAccount,
      stake_net_quantity: String(nNum.toFixed(4)) + ' EOS',
      stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS',
      transfer: sendflug
    });
    }).then(function(data){
     console.log(data);
  }).catch(function(error){
     console.log(error);
  });
}

/* ステーキングを実行する */
stake_resources("nodejstest45", "nodejstest45", 0.5000, 0.5000, true);

最後に

この関数も前回のコードと同様にコピペだけで動作するように作成しました。

もうすこし作り込こんでテキストボックスを用意して、そこにCPU、NET枚数を入力してボタンを押したらステーキングするというものも作れると思います。

次回はステーキングを解除するアンステークの関数を行いたいと思います。

EOS初心者おすすめ記事