仮想通貨EOS相場
EOSJS

コピペで使えるeosjsプログラミング関数(node.js)(eosjs v20.0)

前回ではeosjs(node.jsの開発環境)の初期設定をやっていきました。

今回は皆さんにも簡単に扱えるようにコピペで使えるeosjsプログラム関数を紹介したいと思いますので、思いっきり使い倒してください。

EOSの秘密鍵・公開鍵を生成する関数

EOSのオーナーとアクティブの秘密鍵・公開鍵を生成します。

まず最初はeosjs-keygenモジュールをターミナル上でインストールしましょう。

npm i eosjs-keygen

上記モジュールをインストールすると以下の関数が使えるようになります。

/* eosjs-keygenをインポート  */
const {Keygen} = require('eosjs-keygen');

async function eosKeyGenerator(){

 /* 秘密鍵を生成  */
 var sPrivateKey = (await Keygen.generateMasterKeys()).privateKeys;
 /* 公開鍵を生成  */
 var sPublicKey = (await Keygen.generateMasterKeys()).publicKeys;

 /* 秘密鍵・公開鍵を一つにまとめる  */
 var sKeys = '{"privatekey":' + JSON.stringify(sPrivateKey) + ',"publickey":' + JSON.stringify(sPublicKey) + '}';

 /* JSON形式に変換  */
 var jKeys = JSON.parse(sKeys);

 /* 鍵を出力  */
 console.log(jKeys);

 /* 秘密鍵・公開鍵のJSONの値を返す  */
 return jKeys;
	
}

console.logで表示した実行結果は以下の通りとなります。

{
  privatekey: {
    owner: '5Jxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    active: '5Jyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
  },
  publickey: {
    owner: 'EOSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    active: 'EOSyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
  }
}

秘密鍵と公開鍵がしっかりと生成されています。

トークンを送金処理をする関数

次はトークンを送金処理する関数です。

async function send_transaction(sPermission, sSendAccount, sRecAccount, fAmount, sSymbol, sMessage){

 /*  送金枚数を数字に変換 */
 var num = new Number(fAmount);
 /*  メッセージがnullの場合は文字なしにする */
 if(sMessage == null) sMessage = '';

 /*  例外処理 */
 try {
  const result = await api.transact({
   actions: [{
    account: 'eosio.token',
    name: 'transfer', //トークンを送金する命令文
    authorization: [{
      actor: sSendAccount,  //承認者
      permission: sPermission,  //ownerなのかactiveなのかを選ぶ
   }],
    data: {
       from: sSendAccount,  //送金者
       to: sRecAccount,  //受金者
       quantity: String(num.toFixed(4)) + ' ' + sSymbol,   //送金枚数(小数点第4まで明記必須)+トークンシンボル 
       memo: sMessage,   //メッセージ(ない場合はnull)
    },
     }]
  }, {
     blocksBehind: 3,
     expireSeconds: 30,
  });
  console.log(result);
 /*  例外処理でエラーが発生したら実行処理 */
 } catch (e) {
  console.log("Error:" + e.message);
 }
}

関数の説明は以下の通り

【 関数説明 】
send_transaction(sPermission, sSendAccount, sRecAccount, fAmount, sSymbol, sMessage)

sPermission = “(文字列)” : パーミッションを設定する(”active”または”owner”)
sSendAccount = “(文字列)” : 送金者EOSアカウントを設定する
sRecAccount = “(文字列)” : 受金者EOSアカウントを設定する
fAmount = (浮動小数点数型) : トークンの送金枚数を設定する(EOSの場合は小数点第4位まで必須)
sSymbol = “(文字列)” : トークンシンボルを設定する(EOSの場合は”EOS”)
sMessage = “(文字列)” or null : メッセージをを明記する。メッセージがない場合はnull

【 使用例 】
await send_transaction(“active”, “xxxxxxxxxxxx”, “yyyyyyyyyyyy”, 0.0001, “EOS”, null);

console.logで表示した実行結果は以下の通りとなります。

{
  transaction_id: 'dc556414ecadxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  processed: {
    id: 'dc556414ecadxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    block_num: 896xxxxxx,
    block_time: '2020-05-05T01:36:22.500',
    producer_block_id: null,
    receipt: { status: 'executed', cpu_usage_us: 583, net_usage_words: 16 },
    elapsed: 583,
    net_usage: 128,
    scheduled: false,
    action_traces: [ [Object] ],
    account_ram_delta: null,
    except: null,
    error_code: null
  }
}

上記が出力されれば送金が成功しています。

RAMを購入する関数

次はEOSリソースのRAMを購入する関数です。

async function buy_ram(sPermission, sPayAccount, sRecAccount, iBytes){

/*  例外処理 */
 try {
  const result = await api.transact({
   actions: [{
    account: 'eosio',
    name: 'buyrambytes', //RAMを買う命令文
    authorization: [{
    actor: sPayAccount,  //承認者
    permission: sPermission,  //ownerなのかactiveなのかを選ぶ
     }],
    data: {
     payer: sPayAccount,  //送金者
     receiver: sRecAccount,  //受取側
     bytes: String(iBytes),  //購入するRAM数(Byte)
    },
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
  });
    console.log(result);
/*  例外処理でエラーが発生したら実行処理 */
 } catch (e) {
  console.log("Error:" + e.message);
 }
 
}

関数の説明は以下の通り

【 関数説明 】
buy_ram(sPermission, sPayAccount, sRecAccount, iBytes)

sPermission = “(文字列)” : パーミッションを設定する(”active”または”owner”)
sPayAccount = “(文字列)” : 送金者EOSアカウントを設定する
sRecAccount = “(文字列)” : 受取者EOSアカウントを設定する
iBytes = (整数型) : RAMの購入バイト数を設定する

【 使用例 】
await buy_ram(“active”, “xxxxxxxxxxxx”, “xxxxxxxxxxxx”, 8000);

console.logで表示した実行結果は以下の通りとなります。

{
  transaction_id: 'c7c6axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  processed: {
    id: 'c7c6aaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    block_num: 896xxxxx,
    block_time: '2020-05-05T03:00:12.500',
    producer_block_id: null,
    receipt: { status: 'executed', cpu_usage_us: 1294, net_usage_words: 14 },
    elapsed: 1294,
    net_usage: 112,
    scheduled: false,
    action_traces: [ [Object] ],
    account_ram_delta: null,
    except: null,
    error_code: null
  }
}

上記が出力されればRAM購入が成功しています。

EOSをステーキングする関数

次はEOSをステーキングする関数です。

async function stake_resources(sPermission, sStaker, sRecAccount, fNetQuantity, fCpuQuantity, bTransfer){

 /*  ステーキング枚数を数字化 */
 var nNum = new Number(fNetQuantity);
 var cNum = new Number(fCpuQuantity);

 /*  例外処理 */
 try {
  const result = await api.transact({
   actions: [{
   account: 'eosio',
   name: 'delegatebw', //ステーキングを行う命令文
   authorization: [{
    actor: sStaker, //承認者
    permission: sPermission, //ownerなのかactiveなのかを選ぶ
   }],
    data: {
     from: sStaker, //ステーキングを行う人
     receiver: sRecAccount, //リソースを反映する人
     stake_net_quantity: String(nNum.toFixed(4)) + ' EOS', //NETに割り振るステーク枚数
     stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS', //CPUに割り振るステーク枚数
     transfer: bTransfer, //リソースを反映する人にEOSを送るのか('true')送らないのか('false')の設定
    }
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
   });
   console.log(result);
/*  例外処理でエラーが発生したら実行処理 */
  } catch (e) {
   console.log("Error:" + e.message);
  }
}

関数の説明は以下の通り

【 関数説明 】
stake_resources(sPermission, sStaker, sRecAccount, fNetQuantity, fCpuQuantity, bTransfer)

sPermission = “(文字列)” : パーミッションを設定する(”active”または”owner”)
sStaker = “(文字列)” : ステーキングを行う人
sRecAccount = “(文字列)” : リソースを反映する人
fNetQuantity = (浮動小数点数型) : NETに割り振るステーク枚数を設定する
fCpuQuantity = (浮動小数点数型) : CPUに割り振るステーク枚数を設定する
bTransfer = “(文字列)” : リソースを反映する人にEOSを送るのか”true”送らないのか”false”の設定

【 使用例 】
await stake_resources(“active”, “xxxxxxxxxxxx”, “xxxxxxxxxxx”, 0.1001, 0.0000, false);

console.logで表示した実行結果は以下の通りとなります。

{
  transaction_id: '6d1805cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  processed: {
    id: '6d1805cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    block_num: 8965xxxxx,
    block_time: '2020-05-05T05:02:17.000',
    producer_block_id: null,
    receipt: { status: 'executed', cpu_usage_us: 951, net_usage_words: 18 },
    elapsed: 951,
    net_usage: 144,
    scheduled: false,
    action_traces: [ [Object] ],
    account_ram_delta: null,
    except: null,
    error_code: null
  }
}

上記が出力されればステーキング成功しています。

EOSをアンステーキングする関数

次はEOSをアンステーキングする関数です。

async function unstake_resources(sPermission, sUnstaker, sRecAccount, fNetQuantity, fCpuQuantity){

 /*  アンステーキング枚数を数字化 */
 var nNum = new Number(fNetQuantity);
 var cNum = new Number(fCpuQuantity);

 /*  例外処理 */
 try {
  const result = await api.transact({
   actions: [{
   account: 'eosio',
   name: 'undelegatebw', //アンステーキングを行う命令文
   authorization: [{
    actor: sUnstaker, //承認者
    permission: sPermission, //ownerなのかactiveなのかを選ぶ
   }],
    data: {
     from: sUnstaker, //アンステーキングを行う人
     receiver: sRecAccount, //EOSを返却する人
     stake_net_quantity: String(nNum.toFixed(4)) + ' EOS', //NETステークを解除する枚数
     stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS', //CPUステークを解除する枚数
    }
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
   });
   console.log(result);
/*  例外処理でエラーが発生したら実行処理 */
  } catch (e) {
   console.log("Error:" + e.message);
  }
}

関数の説明は以下の通り

【 関数説明 】
unstake_resources(sPermission, sUnstaker, sRecAccount, fNetQuantity, fCpuQuantity)

sPermission = “(文字列)” : パーミッションを設定する(”active”または”owner”)
sUnstaker = “(文字列)” : アンステーキングを行う人
sRecAccount = “(文字列)” : EOSを返却する人
fNetQuantity = (浮動小数点数型) : NETステークを解除する枚数を設定する
fCpuQuantity = (浮動小数点数型) : CPUステークを解除する枚数を設定する

【 使用例 】
await unstake_resources(“active”, “xxxxxxxxxxxx”, “xxxxxxxxxxx”, 0.1001, 0.0000);

console.logで表示した実行結果は以下の通りとなります。

{
  transaction_id: '07adxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  processed: {
    id: '07adxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    block_num: 8966xxxx,
    block_time: '2020-05-05T05:21:36.500',
    producer_block_id: null,
    receipt: { status: 'executed', cpu_usage_us: 710, net_usage_words: 23 },
    elapsed: 710,
    net_usage: 184,
    scheduled: false,
    action_traces: [ [Object] ],
    account_ram_delta: null,
    except: null,
    error_code: null
  }
}

上記が出力されればアンステーキング成功しています。

新規EOSアカウントを作成する関数

次は新規EOSアカウントを作成する関数です。

async function create_account(sPermission, sCreator, sCreateAccount, sOwnerPublickey, sActivePublickey, iRamByte, fNetQuantity, fCpuQuantity, bTransfer){

 /*  ステーキング枚数を数字化 */
 var nNum = new Number(fNetQuantity);
 var cNum = new Number(fCpuQuantity);

 /*  例外処理 */
 try {
   const result = await api.transact({
    actions: [{
      account: 'eosio',
      name: 'newaccount',  //新規EOSアカウントを作成する命令文
      authorization: [{
     actor: sCreator, //承認者
     permission: sPermission, //ownerなのかactiveなのかを選ぶ
      }],
    data: {
      creator: sCreator, //EOSアカウント作成者
      name: sCreateAccount, //新規EOSアカウント名
      owner: {
        threshold: 1,
        keys: [{
       key: sOwnerPublickey, //オーナー公開鍵設定
       weight: 1
        }],
        accounts: [],
        waits: []
      },
      active: {
        threshold: 1,
        keys: [{
       key: sActivePublickey, //アクティブ公開鍵設定
       weight: 1
        }],
      accounts: [],
      waits: []
      },
       },
    },
    {
     account: 'eosio',
     name: 'buyrambytes', //RAMを購入する命令文
     authorization: [{
      actor: sCreator, //承認者
      permission: sPermission, //ownerなのかactiveなのかを選ぶ
       }],
       data: {
        payer: sCreator, //新規アカウントへのRAM代支払者
        receiver: sCreateAccount, //新規EOSアカウント名
        bytes: iRamByte,  //購入するRAM数(Byte)
       },
    },
    {
     account: 'eosio',
     name: 'delegatebw', //ステーキングを行う命令文
      authorization: [{
      actor: sCreator, //承認者
      permission: sPermission, //ownerなのかactiveなのかを選ぶ
       }],
     data: {
      from: sCreator, //ステーキングを行う人
      receiver: sCreateAccount, //新規EOSアカウント名
      stake_net_quantity: String(nNum.toFixed(4)) + ' EOS', //NETに割り振るステーク枚数
      stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS', //CPUに割り振るステーク枚数
      transfer: bTransfer, //新規アカウントにステークしたEOSを送るのか('true')送らないのか('false')の設定
     }
    }]
     }, {
     blocksBehind: 3,
     expireSeconds: 30,
     });
     console.log(result);
 /*  例外処理でエラーが発生したら実行処理 */
  } catch (e) {
   console.log("Error:" + e.message);
  }
}

関数の説明は以下の通り

【 関数説明 】
create_account(sPermission, sCreator, sCreateAccount, sOwnerPublickey, sActivePublickey, iRamByte, fNetQuantity, fCpuQuantity, bTransfer)

sPermission = “(文字列)” : パーミッションを設定する(”active”または”owner”)
sCreator = “(文字列)” : EOSアカウント作成者
sCreateAccount = “(文字列)” : 新規EOSアカウント名
sOwnerPublickey = “(文字列)” : オーナー公開鍵を設定
sActivePublickey = “(文字列)” : アクティブ公開鍵を設定
iRamByte = (整数型) : 新規EOSアカウントに割り振るRAMの購入バイト数を設定する
fNetQuantity = (浮動小数点数型) : 新規EOSアカウントにNETに割り振るステーク枚数を設定する
fCpuQuantity = (浮動小数点数型) : 新規EOSアカウントにCPUに割り振るステーク枚数を設定する
bTransfer = “(文字列)” : 新規EOSアカウントステークしたEOSを送るのか”true”送らないのか”false”の設定

【 使用例 】
var sOwnerPublickey = “EOS6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
var sActivePublickey = “EOS7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”;

await create_account(“active”, “xxxxxxxxxxxx”, “nnnnnnnnnnnn”, sOwnerPublickey, sActivePublickey, 8000, 0.5000, 0.5000, true);

console.logで表示した実行結果は以下の通りとなります。

{
  transaction_id: 'dd09xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  processed: {
    id: 'dd09xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    block_num: 8966xxxx,
    block_time: '2020-05-05T05:56:15.500',
    producer_block_id: null,
    receipt: { status: 'executed', cpu_usage_us: 1134, net_usage_words: 23 },
    elapsed: 1134,
    net_usage: 184,
    scheduled: false,
    action_traces: [ [Object] ],
    account_ram_delta: null,
    except: null,
    error_code: null
  }
}
{
  transaction_id: '7758042xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  processed: {
    id: '7758042xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    block_num: 8966xxxx,
    block_time: '2020-05-05T05:56:24.000',
    producer_block_id: null,
    receipt: { status: 'executed', cpu_usage_us: 2823, net_usage_words: 42 },
    elapsed: 2823,
    net_usage: 336,
    scheduled: false,
    action_traces: [ [Object], [Object], [Object] ],
    account_ram_delta: null,
    except: null,
    error_code: null
  }
}

上記が出力されれば新規EOSアカウント作成が成功しています。

フルソースコード

/******  eosjsを使えるようにするための設定  ******/
const { Api, JsonRpc, RpcError } = require('eosjs');
const { JsSignatureProvider } = require('eosjs/dist/eosjs-jssig'); 
const {Keygen} = require('eosjs-keygen');
const fetch = require('node-fetch');
const { TextEncoder, TextDecoder } = require('text-encoding');

//const rpc = new JsonRpc('https://eos.greymass.com:443', {fetch}); //mainnet
const rpc = new JsonRpc('https://jungle2.eosio.cr:443', {fetch}); //testnet

const defaultPrivateKey = "5Kxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const signatureProvider = new JsSignatureProvider([defaultPrivateKey]);

const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });

/****** 公開鍵・秘密鍵を作成  ******/
async function eosKeyGenerator(){

 var sPrivateKey = (await Keygen.generateMasterKeys()).privateKeys;
 var sPublicKey = (await Keygen.generateMasterKeys()).publicKeys;

 var sKeys = '{"privatekey":' + JSON.stringify(sPrivateKey) + ',"publickey":' + JSON.stringify(sPublicKey) + '}';

 var jKeys = JSON.parse(sKeys);
 console.log(jKeys);
 return jKeys;

}

/****** トークンを送金する  ******/
async function send_transaction(sPermission, sSendAccount, sRecAccount, fAmount, sSymbol, sMessage){

 var num = new Number(fAmount);
 if(sMessage == null) sMessage = '';

 try {
  const result = await api.transact({
   actions: [{
    account: 'eosio.token',
    name: 'transfer',
    authorization: [{
      actor: sSendAccount,
      permission: sPermission,
   }],
    data: {
       from: sSendAccount,
       to: sRecAccount,
       quantity: String(num.toFixed(4)) + ' ' + sSymbol, 
       memo: sMessage, 
    },
     }]
  }, {
     blocksBehind: 3,
     expireSeconds: 30,
  });
  console.log(result);
 } catch (e) {
  console.log("Error:" + e.message);
 }

}


/****** RAMを購入する  ******/
async function buy_ram(sPermission, sPayAccount, sRecAccount, iBytes){

 try {
  const result = await api.transact({
   actions: [{
    account: 'eosio',
    name: 'buyrambytes', 
    authorization: [{
    actor: sPayAccount,
    permission: sPermission, 
     }],
    data: {
     payer: sPayAccount,
     receiver: sRecAccount,
     bytes: String(iBytes),
    },
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
  });
    console.log(result);
 } catch (e) {
  console.log("Error:" + e.message);
 }

}

/****** ステーキングする  ******/
async function stake_resources(sPermission, sStaker, sRecAccount, fNetQuantity, fCpuQuantity, bTransfer){

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

 try {
  const result = await api.transact({
   actions: [{
   account: 'eosio',
   name: 'delegatebw',
   authorization: [{
    actor: sStaker,
    permission: sPermission,
   }],
    data: {
     from: sStaker,
     receiver: sRecAccount,
     stake_net_quantity: String(nNum.toFixed(4)) + ' EOS',
     stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS',
     transfer: bTransfer,
    }
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
   });
   console.log(result);
  } catch (e) {
   console.log("Error:" + e.message);
  }

}

/****** アンステーキングする  ******/
async function unstake_resources(sPermission, sUnstaker, sRecAccount, fNetQuantity, fCpuQuantity){

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

 try {
  const result = await api.transact({
   actions: [{
   account: 'eosio',
   name: 'undelegatebw',
   authorization: [{
    actor: sUnstaker,
    permission: sPermission,
   }],
    data: {
     from: sUnstaker,
     receiver: sRecAccount,
     stake_net_quantity: String(nNum.toFixed(4)) + ' EOS',
     stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS',
    }
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
   });
   console.log(result);
  } catch (e) {
   console.log("Error:" + e.message);
  }

}

/****** 新規EOSアカウントを作成する  ******/
async function create_account(sPermission, sCreator, sCreateAccount, sOwnerPublickey, sActivePublickey, iRamByte, fNetQuantity, fCpuQuantity, bTransfer){

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

 try {
   const result = await api.transact({
    actions: [{
      account: 'eosio',
      name: 'newaccount', 
      authorization: [{
     actor: sCreator,
     permission: sPermission,
      }],
    data: {
      creator: sCreator,
      name: sCreateAccount,
      owner: {
        threshold: 1,
        keys: [{
       key: sOwnerPublickey,
       weight: 1
        }],
        accounts: [],
        waits: []
      },
      active: {
        threshold: 1,
        keys: [{
       key: sActivePublickey,
       weight: 1
        }],
      accounts: [],
      waits: []
      },
       },
    },
    {
     account: 'eosio',
     name: 'buyrambytes',
     authorization: [{
      actor: sCreator,
      permission: sPermission,
       }],
       data: {
        payer: sCreator,
        receiver: sCreateAccount,
        bytes: iRamByte, 
       },
    },
    {
     account: 'eosio',
     name: 'delegatebw',
      authorization: [{
      actor: sCreator,
      permission: sPermission,
       }],
     data: {
      from: sCreator,
      receiver: sCreateAccount,
      stake_net_quantity: String(nNum.toFixed(4)) + ' EOS',
      stake_cpu_quantity: String(cNum.toFixed(4)) + ' EOS',
      transfer: bTransfer,
     }
    }]
     }, {
     blocksBehind: 3,
     expireSeconds: 30,
     });
     console.log(result);
  } catch (e) {
   console.log("Error:" + e.message);
  }

}



/******  関数を実行する  ******/
await eosKeyGenerator();
await send_transaction("active", "xxxxxxxxxxxx", "yyyyyyyyyyyy", 1.0000, "EOS", null);
await buy_ram("active", "xxxxxxxxxxxx", "xxxxxxxxxxxx", 8000);
await stake_resources("active", "xxxxxxxxxxxx", "xxxxxxxxxxxx", 0.1000, 0.1000, false);
await unstake_resources("active", "xxxxxxxxxxxx", "xxxxxxxxxxxx", 0.1000, 0.1000, false);

var sOwnerPublickey = "EOS6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var sActivePublickey = "EOS7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
await create_account("active", "xxxxxxxxxxxx", "nnnnnnnnnnnn", sOwnerPublickey, sActivePublickey, 8000, 0.5000, 0.5000, true);

最後に

今回はコピペで貼り付けるだけで使用することができるeosjsの関数を作成してみました。
色んな組み合わせで様々なサービスを展開するのも可能なので是非触ってみてください。

EOS初心者おすすめ記事