交易
為了能夠在區塊鏈上傳送交易和觸發操作,你必須具有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,
});