千家信息网

在EOS区块链上使用EOSJS和scatter开发dApp

发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,今天就跟大家聊聊有关在EOS区块链上使用EOSJS和scatter开发dApp,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我汇总了下做一些研
千家信息网最后更新 2024年10月27日在EOS区块链上使用EOSJS和scatter开发dApp

今天就跟大家聊聊有关在EOS区块链上使用EOSJS和scatter开发dApp,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

我汇总了下做一些研究后得到的所有知识。我将解释如何使用EOSJS和scatter。

我们在构建什么?

我们正在构建一个简单的todo dApp。我们将为CRUD(创建,读取,更新和删除)操作编写智能合约,并将使用EOSJS和scatter与已部署的合同进行交互。CRUD操作包括创建,完成,删除和获取待办事项。我们将使用Jungle Testnet来部署我们的智能合约。

必备知识

  • EOS

  • EOSJS

  • Scatter

Scatter设置

Scatter用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。要设置Scatter钱包,请关注这个视频。在Scatter设置中,必须在网络中添加Jungle testnet,其中包含以下详细信息:

Name: Jungle TestnetDomain or IP: dev.cryptolions.io // It might be changed, so check for the latest onePort: 38888chainId:038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca

添加网络配置后,现在通过输入密钥对部分然后单击新建将你的私钥导入钱包。根据下图所示的表格填写关键信息。

现在,您应该使用密钥对添加标识。如果没有用,请转到"身份"部分并添加或编辑现有身份。在身份部分,选择网络,然后选择密钥对,它会要求您在链网上添加与该密钥相关联的帐户。 您应该添加具有活动权限的帐户。

你的scatter已全部设置好并可以在我们的dApp中使用。

智能合约

要部署todo智能合约,请按照本文将其部署到Jungle Testnet上。确保能够从文章中提到的命令行与Testnet进行交互。

与Testnet交互

我正在使用ReactJS作为前端部分。完整的逻辑和流程位于src文件夹中名为index.jsx的单个文件中。以下是配置对象:

// Config for scatter and eosjsconst EOS_CONFIG = {contractName: "xyz", // Contract namecontractSender: "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 scatterthis.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 keythis.scatter = scatter;// to load the data present in our tablethis.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有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0