您好,登錄后才能下訂單哦!
eosjs轉賬代碼怎么寫,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
下面介紹使用V20版本的eosjs實現代幣轉賬的思路,并給出eosjs轉賬的實現代碼。
我們首先在nodejs中引入要使用到的類:
const {Api,JsonRpc,RpcError} = require('eosjs') const JsSignatureProvider = require('eosjs/dist/eosjs-jssig'); const fetch = require('node-fetch'); const { TextEncoder, TextDecoder } = require('util');
在EOS中,代幣轉賬就是對代幣合約的transfer()
方法的調用,因此接下來就是準備一個對代幣合約的動作調用。例如,下面的動作將從賬號useraaaaaaaa向賬號userbbbbbbbb轉0.0001個SYS代幣:
const action = { account: 'eosio.token', name: 'transfer', authorization: [{ actor: 'useraaaaaaaa', permission: 'active', }], data: { from: 'useraaaaaaaa', to: 'userbbbbbbbb', quantity: '0.0001 SYS', memo: '', }, }
接下來要準備一個簽名器對交易進行簽名,在開發時,我們可以使用eosj內置的簽名器實現 JsSignatureProvider,它的實例化需要傳入一組交易可能用到的私鑰:
// useraaaaaaaa的私鑰 const defaultPrivateKey = "5JtUScZK2XEp3g9gh7F8bwtPTRAkASmNrrftmx4AxDKD5K4zDnr"; const signatureProvider = new JsSignatureProvider([defaultPrivateKey]);
需要指出的是,JsSignatureProvider沒有對私鑰的任何保護措施,因此在生產環境中請不要使用這個簽名器。在教程Eos智能合約與Dapp開發入門中我們給出了一個基于keosd的簽名提供器可供生產環境下使用。
一旦交易完成簽名,就需要利用EOS節點旳RPC接口提交交易,因此接下來初始化一個JsonRpc對象:
const rpc = new JsonRpc('http://127.0.0.1:8888', { fetch });
上述簽名、序列化和廣播交易的過程在eosjs中由Api類封裝,因此我們只需要調用Api實例的transact()方法即可:
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() }); api.transact({actions:[action]}) .then(ret => console.log(ret)) .catch(err => console.log(err))
在transact()
方法的實現中,將調用JsonRpc對象的push_transaction()方法將簽名后的序列化交易提交到節點并廣播到整個EOS網絡中。
看完上述內容,你們掌握eosjs轉賬代碼怎么寫的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。