仮想通貨EOS相場
EOSJS

node.jsで簡単EOSアカウント作成プログラミング(eosjs v16.0.9)

前回は仮想通貨EOS(イオス)をnode.jsを使ってステーキング、RAM購入までプログラミングを学んだと思います。

今回はnode.jsを介してこの全ての処理を組み合わせてEOSアカウントを作成していきます。

EOSアカウントを作成するプログラム

それでは早速node.jsでEOSアカウントを作成するプログラムを組んでいきましょう。

EOSアカウントを作成するコードは以下のとおりです。

function create_account(sCreater, sCreateAccount, sOwnerPublickey, sActivePublickey, iRamByte, 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 => {

  /* EOSアカウントを作成する */
    tr.newaccount({
      creator: sCreater,
      name: sCreateAccount,
      owner: sOwnerPublickey,
      active: sActivePublickey
    });
  /* 新規アカウントにRAMを送付する */
    tr.buyrambytes({
      payer: sCreater,
      receiver: sCreateAccount,
      bytes: parseInt(iRamByte)
    });
  /* 新規アカウントにCPUとNET分のリソースを配布する。 */
    tr.delegatebw({
      from: sCreater,
      receiver: sCreateAccount,
      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);
  });
  
}

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

create_account(sCreater, sCreateAccount, sOwnerPublickey, sActivePublickey, iRamByte, fNetQuantity, fCpuQuantity, bTransfer)

■各パラメーターの説明
sCreater = 文字列:EOSアカウント作成料を払うアカウント
sCreateAccount = 文字列:新規作成するEOSアカウント名(a-z,5-1)12文字
sOwnerPublickey = 文字列:EOSで始まるオーナー公開鍵を入力する。
sActivePublickey = 文字列:EOSで始まるアクティブ公開鍵を入力する。
iRamByte = 整数型:RAM購入をするバイト数を入力する。
fNetQuantity = 浮動小数点型:NETに割り振る枚数を入力する。
fCpuQuantity = 浮動小数点型:CPUに割り振る枚数を入力する。
bTransfer = BOOL型:trueならEOSを転送しない、falseならEOSを転送する。

■使い方
(EOSを新規アカウントにステーク分のEOSを送金する場合)
create_account(“nodejstest45”, “createa12345”, “EOS6LYCxxxxxxx”, “EOS7A1qxxxxxxx”, 8000, 0.5000, 0.5000, false);
(EOSを新規アカウントにステーク分のEOSを貸す場合)
create_account(“nodejstest45”, “createa12345”, “EOS6LYCxxxxxxx”, “EOS7A1qxxxxxxx”, 8000, 0.5000, 0.5000, true);

フルコード

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

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

function create_account(sCreater, sCreateAccount, sOwnerPublickey, sActivePublickey, iRamByte, 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 => {

  /* EOSアカウントを作成する */
    tr.newaccount({
      creator: sCreater,
      name: sCreateAccount,
      owner: sOwnerPublickey,
      active: sActivePublickey
    });
  /* 新規アカウントにRAMを送付する */
    tr.buyrambytes({
      payer: sCreater,
      receiver: sCreateAccount,
      bytes: parseInt(iRamByte)
    });
  /* 新規アカウントにCPUとNET分のリソースを配布する。 */
    tr.delegatebw({
      from: sCreater,
      receiver: sCreateAccount,
      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);
  });
}

/* EOSアカウントを作成する */
create_account("nodejstest45", 'helloworld24', "EOS6LYCxxxxxxx", "EOS6LYCxxxxxxx", 8000, 0.5000, 0.5000, false);

最後に

この関数もコピペだけで動作するように作成しました。

これまでに紹介したプログラムをうまく組み合わせれば面白いサービスを展開できると思います。
遊び程度でもいいので色々試してみてください。

EOS初心者おすすめ記事