EOS区块链上EOSJS和scatter开发dApp
由于我一直在深入研究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
添加网络配置后,现在通过输入密钥对部分然后单击新建将你的私钥导入钱包。根据下图所示的表格填写关键信息。
image
现在,您应该使用密钥对添加标识。如果没有用,请转到“身份”部分并添加或编辑现有身份。在身份部分,选择网络,然后选择密钥对,它会要求您在链网上添加与该密钥相关联的帐户。 您应该添加具有活动权限的帐户。
你的scatter已全部设置好并可以在我们的dApp中使用。
image
智能合约
要部署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的开发。
这里是原文
EOS区块链上EOSJS和scatter开发dApp相关推荐
- eos区块链 java客户端_在EOS区块链上使用EOSJS和scatter开发dApp
由于我一直在深入研究EOS dApp的开发,我看了不少好文章.在这里,我汇总了下做一些研究后得到的所有知识.在本文中,我将解释如何使用EOSJS和scatter.我假设你对智能合约以及如何在EOS区块 ...
- EOS区块链DApp去中心化应用汇总
EOS最近一直在区块链新闻中.它的主干网(公有链)发布了,人们仍然对它们持怀疑态度.在101Blockchain.com网站上,我们知道会有紧张的投资者.怀疑的分析家和像你一样好奇的读者.这就是为什么 ...
- ET钱包2月25日早报 | 过去24小时EOS区块链活跃度指数蝉联榜首
EOS不是完美的区块链,这个世界也不存在完美的区块链.然而,存在着一批又一批对EOS精雕细琢的人,他们在不断地加强EOS.有些问题并不可怕和严重,因为,人的智慧总能够发现方法,解决这些问题. 2019 ...
- EOS区块链一周要闻回顾(2.17-2.23)
EOS 账户数 截至 2 月 23 日晚,EOS 账户数为 1,741,474 个,EOSIO 挑战赛报名人数 386 人. BM:追求言论自由,热爱不同而非强求遵从 BM 在推特上就文明社会话题发表 ...
- 如何使用docker和docker-compose在本地Testnet上开发EOS区块链
EOS区块链的开发并不是立竿见影的,因为需要一些非显而易见的组件,需要对它们进行配置和协同工作. nodeos:块生成器守护程序. keosd:钱包守护进程,存储私钥. eosio-cpp:智能合约编 ...
- 第一次开发EOS区块链的经验总结
在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...
- eos区块链 java客户端_分享一个网友第一次开发EOS区块链总结的经验
在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...
- EOS区块链技术开发(〇)起源
EOS区块链技术开发(〇)起源 1 Why 1.1 EOS区块链 1.2 CSDN 2 How 3 What 参考资料 1 Why 1.1 EOS区块链 为什么选择EOS呢?自然是因为性能.ETH的性 ...
- 分享网友第一次开发EOS区块链总结的经验
在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...
最新文章
- Unbuntu18.04通过apt源方式安装mysql5.7.22
- C#基础知识点梳理一
- 将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1 RC 1
- 17 SD配置-企业结构-分配-分配允许的信用控制范围给公司码
- iOS音频的后台播放总结(后台网络请求歌曲,Remote控制,锁屏封面,各种打断)...
- archlinux grub启动无win7_CentOS Linux操作系统各种启动和服务管理
- 手把手入门三菱PLC FX2N系列(一)安装GX works2 、 连接PLC、基本操作
- 教育机构如何从0开始做抖音获客
- 实体消歧、实体统一和指代消歧
- Codeforces 235C Cyclical Quest
- python量化股票源码_使用Python写一个量化股票提醒系统
- 电商 关注 取消关注 人数+-
- Redis的初步使用教程
- HTMLCSS简单学习,看这篇就够了!
- get方法改成post
- 中科院计算所体系结构国家重点实验室招收实习生
- Android 11.0 支持exfat格式
- 纯css就能实现可点击切换的轮播图,feel起来很丝滑
- ES状态查询相关API
- Flash MX 2004 编程(AS2.0)教程(一)