您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關在EOS區塊鏈上使用EOSJS和scatter開發dApp,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
我匯總了下做一些研究后得到的所有知識。我將解釋如何使用EOSJS和scatter。
我們正在構建一個簡單的todo dApp。我們將為CRUD(創建,讀取,更新和刪除)操作編寫智能合約,并將使用EOSJS和scatter與已部署的合同進行交互。CRUD操作包括創建,完成,刪除和獲取待辦事項。我們將使用Jungle Testnet來部署我們的智能合約。
EOS
EOSJS
Scatter
Scatter用于為區塊鏈簽署交易,并在不泄露密鑰的情況下向應用程序提供個人信息。要設置Scatter錢包,請關注這個視頻。在Scatter設置中,必須在網絡中添加Jungle testnet,其中包含以下詳細信息:
Name: Jungle Testnet Domain or IP: dev.cryptolions.io // It might be changed, so check for the latest one Port: 38888 chainId:038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca
添加網絡配置后,現在通過輸入密鑰對部分然后單擊新建將你的私鑰導入錢包。根據下圖所示的表格填寫關鍵信息。
現在,您應該使用密鑰對添加標識。如果沒有用,請轉到“身份”部分并添加或編輯現有身份。在身份部分,選擇網絡,然后選擇密鑰對,它會要求您在鏈網上添加與該密鑰相關聯的帳戶。 您應該添加具有活動權限的帳戶。
你的scatter已全部設置好并可以在我們的dApp中使用。
要部署todo智能合約,請按照本文將其部署到Jungle Testnet上。確保能夠從文章中提到的命令行與Testnet進行交互。
我正在使用ReactJS作為前端部分。完整的邏輯和流程位于src文件夾中名為index.jsx的單個文件中。以下是配置對象:
// Config for scatter and eosjs const EOS_CONFIG = { contractName: “xyz”, // Contract name contractSender: “xyz”, // User executing the contract (should be paired with private key) network: { protocol: “http”, blockchain: “eos”, host: “dev.cryptolions.io”, port: 38888, chainId: “038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca” // get this using http://dev.cryptolions.io:38888/v1/chain/get_info }, eosOptions: {} };
與scatter交互:
import EOS from ‘eosjs’; document.addEventListener(`scatterLoaded`, this.onScatterLoad); onScatterLoad = () => { const scatter = window.scatter; window.scatter = null; // Here, we are connecting scatter with eosjs so that the transactions can be signed using keys present in scatter this.eosClient = scatter.eos( EOS_CONFIG.network, EOS, EOS_CONFIG.eosOptions, EOS_CONFIG.network.protocol ); // scatter object to collect the information present in wallet like accounts or public key this.scatter = scatter; // to load the data present in our table this.loadTodos(); };
現在,在這個對象中,我們有兩個引用EOSClient和scatter,我們將分別用它們與EOS區塊鏈和錢包進行交互。
我正在添加一個功能的代碼,以使用EOSClient獲取存儲的數據(所有todos),你可以在src/index.jsx
中檢查其余功能:
loadTodos() { this.eosClient.getTableRows({ code: EOS_CONFIG.contractName, scope: EOS_CONFIG.contractName, table: “todos”, json: true }).then(data => { this.setState({ todos: data.rows }); }).catch(e => { console.error(e); }); }
要獲取帳戶,請使用scatter對象的getIdentity()
:
const { accounts } = await scatter.getIdentity({ accounts: [config.EOS_CONFIG.network] });
這樣就ok。
看完上述內容,你們對在EOS區塊鏈上使用EOSJS和scatter開發dApp有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。