matlab找数据的转账点,nodejs开发EOS转账服务的两种方案
第一種,使用eosjs開發,適用于用戶輸入私鑰方式,不安全,易造成私鑰泄露。
const rpcUrl = 'http://jungle2.cryptolions.io:80'
const { Api, JsonRpc, RpcError, JsSignatureProvider } = require('eosjs');
const ecc = require('eosjs-ecc');
const fetch = require('node-fetch');
const { TextDecoder, TextEncoder } = require('text-encoding');
const rpc = new JsonRpc(rpcUrl, { fetch });
//轉賬操作 轉賬到賬戶accountName 'eosaccountb2';轉賬數額quantity '1.1234 EOS'
async function transfer(accountName,quantity) {
let signatureProvider = new JsSignatureProvider([pkeys[0].privateKey]);
let api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });
let result = await api.transact({
actions: [{
account: 'eosio.token',
name: 'transfer',
authorization: [{
actor: pkeys[0].actor,
permission: 'active',
}],
data: {
from: pkeys[0].actor,
to: accountName,//提現地址
quantity: quantity, //提現數量
memo: '',
},
}]
}, {
blocksBehind: 3,
expireSeconds: 30,
});
console.dir(result);
};
第二種,使用nodeos api+wallet api開發,適合用于公共賬戶給不同用戶轉賬。相當于用wallet錢包服務來做密鑰管理,隱藏了私鑰,代碼中只需提供公鑰和錢包服務地址即可。
async function transfer() {
try {
let actor = "eosaccountaa"
let transferTo = "eosaccountbb"
let quantity = "1.1234 EOS"
let memo = "hi heere"
let blocksBehind = 3
let expireSeconds = 100
let info = await rpc.get_info();
if (info != null && info.chain_id != null && info.head_block_num != null) {
let chain_id = info.chain_id;
let head_block_num = info.head_block_num - blocksBehind;
let block = await get_block(head_block_num);
if (block != null && block.ref_block_prefix != null && block.timestamp != null) {
let data = await abi_json_to_bin(actor, transferTo, quantity, memo)
if (data != null) {
let transactions = {
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": actor,
"permission": "active"
}],
"data": data
}],
"transaction_extensions": [],
"expiration": ser.timePointSecToDate(ser.dateToTimePointSec(block.timestamp) + expireSeconds),
"ref_block_num": block.block_num & 0xffff,
"ref_block_prefix": block.ref_block_prefix
};
let signTransaction = await sign_transaction(transactions, ["EOS61VncKc7P8MhKzz8K7s3kAeNxFsp5ZQGoVFbLjRh1NVR1B6D9Z"], chain_id);
if (signTransaction != null && signTransaction.signatures != null) {
var transaction_detail = await push_transaction(transactions, signTransaction.signatures);
console.log('push_transaction=transaction_id==' + transaction_detail.transaction_id);
}
}
}
}
} catch (e) {
console.log(e)
}
}
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的matlab找数据的转账点,nodejs开发EOS转账服务的两种方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 途达车身拉花出厂就有还是后来贴上去的?
- 下一篇: 提车挂红布是指启动车吗还是挂车?