EOS系列 - 使用eosjs(js)发起裸包交易

Evn

nodejs

First run

npm install

manual install

npm install eosjs@beta --save
npm install node-fetch --save

Code

vim eos_trx.js

const {
    
     Api, JsonRpc, RpcError } = require('eosjs');
// const { JsSignatureProvider } = require('eosjs/dist/eosjs-jssig');      // development only
const JsSignatureProvider = require('eosjs/dist/eosjs-jssig').default;
const fetch = require('node-fetch');                                    // node only; not needed in browsers
const {
    
     TextEncoder, TextDecoder } = require('util');                   // node only; native TextEncoder/Decoder
// const { TextEncoder, TextDecoder } = require('text-encoding');          // React Native, IE11, and Edge Browsers only

const httpEndpoint = 'https://api.jungle.alohaeos.com'
const chainId = 'e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473'
const defaultPrivateKey = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"; //eosio default private key
const signatureProvider = new JsSignatureProvider([defaultPrivateKey]);

const api = new Api({
    
    
  rpc: new JsonRpc(httpEndpoint,{
    
     fetch }),
  chainId,
  signatureProvider,
  textDecoder: new TextDecoder(),
  textEncoder: new TextEncoder()
})

///

test();
async function test(){
    
    
  const sign_trx = await test_makeTrx();
  test_broadcastTrx(sign_trx);
}

async function test_makeTrx(){
    
    

  const result = await api.transact({
    
    
    actions: [{
    
    
      account: 'eosio.token',
      name: 'transfer',
      authorization: [{
    
    
        actor: 'your_eos_account',
        permission: 'active',
      }],
      data: {
    
    
        from: 'your_eos_account',
        to: 'eosio',
        quantity: '0.0001 EOS',
        memo: '',
      },
    }]
  }, {
    
    
    broadcast: false,       //is broadcast
    sign: true,            //is sign
    blocksBehind: 3,
    expireSeconds: 30,
  });

  console.dir('-------------------')
  console.dir(result);
  console.dir('-------------------')
  return result;
}

async function test_broadcastTrx(sign_trx){
    
    
  // console.dir('-------------------')
  // console.dir(sign_trx);
  // console.dir('-------------------')

  const result = await api.pushSignedTransaction(sign_trx);
  console.dir(result);
}

Then run

node eos_trx.js

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/108958320