以太坊全栈开发完全指南

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

本项目的代码在这里

我最近加入了Edge&Node,担任开发者关系工程师,并一直在深入研究以太坊的智能合约开发。我已经确定了我认为用Solidity构建全栈dApps的最佳技术栈:

??客户端框架-React

??以太坊开发环境-Hardhat

??以太坊Web客户端库-Ethers

functiongreet()publicviewreturns(stringmemory){returngreeting;}functionsetGreeting(stringmemory_greeting)public{console

}

这是一个非常简单的智能合约,在部署时,设置了一个Greeting变量,并公开了一个返回问候语的函数(greet)。

它还有一个允许用户更新问候语的函数。当部署到以太坊区块链后,用户可以和这些方法交互。

我们对智能合约做一个小小的修改。由于我们在hardhat

//callthesmartcontract,readthecurrentgreetingvalueasyncfunctionfetchGreeting(){if(typeofwindow

exportdefaultApp;

动态 | 以太坊下月将在测试网激活君士坦丁堡硬分叉:据coindesk报道,以太坊核心开发者周五证实,以太坊即将推出的硬分叉——君士坦丁堡将在10月9日左右在一个名为Ropsten的跨客户端测试网上激活。但是由于测试环境中区块确认时间的不可预测性,确切的区块编号还没有最终确定。同样,在以太坊的主网上激活君士坦丁堡的时机也尚未确定。然而,在电话会议中,以太坊基金会通讯官Hudson Jameson暂时建议在11月或12月进行代码更改。[2018/9/15]

启动React服务器,测试一下:

npmstart

当应用程序加载时,你应该能够获取当前的问候语并打印到控制台。也应该可以通过MetaMask钱包签名交易来进行更新问候语。

设置和获取问候值

部署和使用真实测试网络

有几个以太坊测试网络,如Ropsten、Rinkeby或Kovan,我们也可以部署到这些网络上,以使合约有一个可公开访问的版本,而不必将其部署到主网。在本教程中,我们将部署到Ropsten测试网络中。

首先,先更新你的MetaMask钱包,连接到Ropsten网络。

Ropsten网络

接下来,通过访问本测试水龙头,给自己发送一些测试以太,以便在本教程的后面使用。

我们可以通过注册类似Infura或Alchemy这样的服务来访问Ropsten(或其他任何测试网络),本教程我使用的是Infura。

一旦你在Infura或Alchemy中创建了应用程序,你会得到一个类似于这样的节点URL:

https://ropsten

functiontransfer(addressto,uintamount)external{require(balances>=amount,"Notenoughtokens");balances-=amount;balances=amount;}functionbalanceOf(addressaccount)externalviewreturns(uint){returnbalances;}}

请注意,该代币合约仅用于演示目的,不符合ERC20,关于ERC20代币的例子,请查看此合约

bithumb以太坊和EOS存取资金服务正常:韩国虚拟货币交易所Bithumb公告称,现在以太坊(ETH)的网络稳定,以太坊(ETH)和EOS的存取资金服务正常进行。[2018/4/17]

该合约将创建一个名为NaderDabitToken的新代币,并设置发行量为1000000。

接下来,编译这份合约。

npxhardhatcompile

更新scripts/deploy

main()

);

现在,我们可以将这个新的合约部署到本地或Ropsten网络。

npxrunscripts/deploy

asyncfunctionfetchGreeting(){if(typeofwindow

exportdefaultApp;

接下来,运行应用程序:

npmstart

点击获取余额,看到我们的账户里有100万币打印在控制台。

也可以通过点击添加代币(AddToken),以便在MetaMask中查看它们:

AddToken

接下来点击自定义代币(CustomToken),输入代币合约地址,然后添加代币。现在,你的钱包里应该有代币了。

显示代币

接下来,让我们试着把这些硬币发送到另一个地址。

结论

本教程涵盖了很多,希望你能学到很多东西。

如果你想在MetaMask之外支持多个钱包,请查看Web3Modal,它可以通过一个相当简单和可定制的配置,方便在你的应用程序中轻松实现对多个网络提供者的支持。

在我未来的教程和指南中,我会深入研究更复杂的智能合约开发,以及如何将其部署到Subgraph,使用GraphQLAPI,实现分页和全文搜索等功能。

本翻译由CellNetwork赞助支持。

来源:https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13

参考资料

登链翻译计划:https://github.com/lbc-team/Pioneer

翻译小组:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

这里:https://github.com/dabit3/full-stack-ethereum

Edge&Node:https://twitter.com/edgeandnode

Hardhat:https://hardhat.org/

Ethers.js:https://docs.ethers.io/v5/

TheGraphProtocol:https://thegraph.com/

scaffold-eth:https://github.com/austintgriffith/scaffold-eth

Ganache:https://www.trufflesuite.com/ganache

Truffle:https://www.trufflesuite.com/

Truffle中文文档:https://learnblockchain.cn/docs/truffle/

ethers.js:https://docs.ethers.io/v5/

ethers.js中文文档:https://learnblockchain.cn/docs/ethers.js/

web3.js:https://web3js.readthedocs.io/en/v1.3.4/

web3.js中文文档:https://learnblockchain.cn/docs/web3.js/

Metamask:https://metamask.io/download.html

Next.js:https://nextjs.org/

Gatsby:https://www.gatsbyjs.com/

Redwood:https://redwoodjs.com/

Blitz.js:https://blitzjs.com/

MetaMask:https://metamask.io/

ethers.js:https://docs.ethers.io/v5/

hardhat:https://github.com/nomiclabs/hardhat

MetaMask配置问题:https://hardhat.org/metamask-issue.html

artifacts:https://hardhat.org/guides/compile-contracts.html#artifacts

ABI:https://learnblockchain.cn/docs/solidity/abi-spec.html

以太坊浏览器:https://etherscan.io/

友好可读ABI格式:https://blog.ricmoo.com/human-readable-contract-abis-in-ethers-js-141902f4d917

本测试水龙头:https://faucet.ropsten.be/

Infura:https://infura.io/dashboard/ethereum/cbdf7c5eee8b4e2b91e76b77ffd34533/settings

Alchemy:https://alchemyapi.io/?r=7d60e34c-b30a-4ffa-89d4-3c4efea4e14b

EtherscanRopstenTestnetExplorer:https://ropsten.etherscan.io/

ERC20:https://eips.ethereum.org/EIPS/eip-20

此合约:https://solidity-by-example.org/app/erc20/

Web3Modal:https://github.com/Web3Modal/web3modal

Subgraph:https://thegraph.com/docs/define-a-subgraph

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9870574.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

Bitfinex一周简报

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

PEPE币关于支持SPND置换为STRK的公告

亲爱的用户: DigiFinex将支持SPND更名为STRK并按1000:1的比例缩放的计划,具体时间安排如下:1、SPND/BTC交易对交易服务现已暂停,未完成撤单的用户.

[0:0ms0-2:943ms