摘要:必备知识设置用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。
由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。
我们在构建什么?
我们正在构建一个简单的todo dApp。我们将为CRUD(创建,读取,更新和删除)操作编写智能合约,并将使用EOSJS和scatter与已部署的合同进行交互。CRUD操作包括创建,完成,删除和获取待办事项。我们将使用Jungle Testnet来部署我们的智能合约。
EOS
EOSJS
Scatter
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进行交互。
与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。
总结其中一个最大的优点是你无需在机器上维护钱包,scatter为我们管理一切。还有其他方法来托管钱包,但scatter对最终用户负责,开发人员不需要处理任何私人信息。github库
分享一个交互式的在线编程实战,EOS智能合约与DApp开发入门:
EOS教程
本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
这里是原文
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/24308.html
摘要:必备知识设置用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。 由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。 我们在构建什么? 我们正在构建一个简单的todo...
摘要:必备知识设置用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。 由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。 我们在构建什么? 我们正在构建一个简单的todo...
摘要:我们目前正处于一个新兴的区块链开发行业中。,一种在以太坊开发人员中流行的新的简单编程语言,因为它是用于开发以太坊智能合约的语言。它是全球至少万开发人员使用的世界上最流行的编程语言之一。以太坊,主要是针对工程师使用进行区块链以太坊开发的详解。 我们目前正处于一个新兴的区块链开发行业中。区块链技术处于初期阶段,然而这种颠覆性技术已经成功地风靡全球,并且最近经历了一场与众不同的繁荣。由于许多...
摘要:在中被大量使用以便于开发。事实上,在中创建帐户存在问题。这种方法使我可以轻松调用智能合约。结论这就是我的区块链实验系列的全部内容。 这是一步步的用EOSIO开发区块链DApp的第三部分,上一部分中,我为EOSIO平台开发了一个模拟选举的智能合约。这部分我将开发一个webapp,允许访问者投票给候选人。 以下是webapp的快速预览: showImg(https://segmentfau...
摘要:在中被大量使用以便于开发。事实上,在中创建帐户存在问题。这种方法使我可以轻松调用智能合约。结论这就是我的区块链实验系列的全部内容。 这是一步步的用EOSIO开发区块链DApp的第三部分,上一部分中,我为EOSIO平台开发了一个模拟选举的智能合约。这部分我将开发一个webapp,允许访问者投票给候选人。 以下是webapp的快速预览: showImg(https://segmentfau...
阅读 3079·2021-08-03 14:05
阅读 2119·2019-08-29 15:35
阅读 630·2019-08-29 13:30
阅读 3150·2019-08-29 13:20
阅读 2510·2019-08-23 18:15
阅读 1779·2019-08-23 14:57
阅读 2193·2019-08-23 13:57
阅读 1287·2019-08-23 12:10