eosjs 文件(交易)

博弈發表於2019-02-16

交易

為了能夠在區塊鏈上傳送交易和觸發操作,你必須具有Api例項。

簽名提供程式必須包含與執行者和操作許可權相對應的私鑰。

const { Api, JsonRpc } = require(`eosjs`);
const JsSignatureProvider = require(`eosjs/dist/eosjs-jssig`);  // development only
const fetch = require(`node-fetch`);                            // node only; not needed in browsers
const { TextDecoder, TextEncoder } = require(`text-encoding`);  // node, IE11 and IE Edge Browsers

const privateKeys = [privateKey1];

const signatureProvider = new JsSignatureProvider.default(privateKeys);
const rpc = new JsonRpc(`http://127.0.0.1:8888`, { fetch });
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });

示例

Buy ram

const result = await api.transact({
  actions: [{
    account: `eosio`,
    name: `buyrambytes`,
    authorization: [{
      actor: `useraaaaaaaa`,
      permission: `active`,
    }],
    data: {
      payer: `useraaaaaaaa`,
      receiver: `useraaaaaaaa`,
      bytes: 8192,
    },
  }]
}, {
  blocksBehind: 3,
  expireSeconds: 30,
});

Stake

const result = await api.transact({
  actions: [{
    account: `eosio`,
    name: `delegatebw`,
    authorization: [{
      actor: `useraaaaaaaa`,
      permission: `active`,
    }],
    data: {
      from: `useraaaaaaaa`,
      receiver: `useraaaaaaaa`,
      stake_net_quantity: `1.0000 SYS`,
      stake_cpu_quantity: `1.0000 SYS`,
      transfer: false,
    }
  }]
}, {
  blocksBehind: 3,
  expireSeconds: 30,
});

示例:Unstake

const result = await api.transact({
  actions: [{
    account: `eosio`,
    name: `undelegatebw`,
    authorization: [{
      actor: `useraaaaaaaa`,
      permission: `active`,
    }],
    data: {
      from: `useraaaaaaaa`,
      receiver: `useraaaaaaaa`,
      unstake_net_quantity: `1.0000 SYS`,
      unstake_cpu_quantity: `1.0000 SYS`,
      transfer: false,
    }
  }]
}, {
  blocksBehind: 3,
  expireSeconds: 30,
});

建立新帳戶(多個操作)

const result = await api.transact({
  actions: [{
    account: `eosio`,
    name: `newaccount`,
    authorization: [{
      actor: `useraaaaaaaa`,
      permission: `active`,
    }],
    data: {
      creator: `useraaaaaaaa`,
      name: `mynewaccount`,
      owner: {
        threshold: 1,
        keys: [{
          key: `PUB_R1_6FPFZqw5ahYrR9jD96yDbbDNTdKtNqRbze6oTDLntrsANgQKZu`,
          weight: 1
        }],
        accounts: [],
        waits: []
      },
      active: {
        threshold: 1,
        keys: [{
          key: `PUB_R1_6FPFZqw5ahYrR9jD96yDbbDNTdKtNqRbze6oTDLntrsANgQKZu`,
          weight: 1
        }],
        accounts: [],
        waits: []
      },
    },
  },
  {
    account: `eosio`,
    name: `buyrambytes`,
    authorization: [{
      actor: `useraaaaaaaa`,
      permission: `active`,
    }],
    data: {
      payer: `useraaaaaaaa`,
      receiver: `mynewaccount`,
      bytes: 8192,
    },
  },
  {
    account: `eosio`,
    name: `delegatebw`,
    authorization: [{
      actor: `useraaaaaaaa`,
      permission: `active`,
    }],
    data: {
      from: `useraaaaaaaa`,
      receiver: `mynewaccount`,
      stake_net_quantity: `1.0000 SYS`,
      stake_cpu_quantity: `1.0000 SYS`,
      transfer: false,
    }
  }]
}, {
  blocksBehind: 3,
  expireSeconds: 30,
});

上一篇:瀏覽器

下一篇:讀取區塊鏈

相關文章