TPS:以太坊全栈开发完全指南

译文出自:登链翻译计划

译者:翻译小组

校对: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

库币上线BRG,开盘上涨38.2%:据库币KuCoin交易所消息,库币已上线BRG项目并支持BRG/USDT和BRG/BTC交易服务。BRG开盘价为0.34USDT,当前报价0.4699USDT,涨幅38.2%。Bridge Oracle是TRON网络上第一个公开的预言机系统,它是为提供访问波场网络链外数据的可能性而开发。库币数字货币交易所,为来自207个国家的600万用户提供币币、法币、杠杆、合约、矿池、借贷等一站式服务。[2021/2/24 17:48:40]

exportdefaultApp;

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

npmstart

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

设置和获取问候值

部署和使用真实测试网络

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

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

Ropsten网络

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

库币上线COMP 并将于6月26日18:00开放交易:据库币KuCoin交易所消息,库币正式上线Compound (COMP)项目并开放COMP/USDT交易对。充值服务现已开启,并将于6月26日18:00开放交易。同时,即日起至6月30日,COMP净充值量为前200名的用户即可根据净充值量占比瓜分4,067 USDT。COMP是基于以太坊的DeFi借贷协议Compound治理代币,类似于银行“抵押借贷”,用户将资产抵押在协议中获取年化收益,同时,持有者可以对Compound协议提出变更提案或对提案进行投票。库币数字货币交易所,为来自207个国家的500万用户提供币币、法币、合约、矿池、借贷等一站式服务。[2020/6/26]

我们可以通过注册类似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;}}

行情 | 库币上线Suterusu 24h内涨幅达26%:据库币KuCoin消息,库币已于2月25日上线Suterusu(SUTER)并开启交易对:SUTER/USDT,24h内涨幅达26%。Suterusu是基于智能合约为区块链交易及数据提供隐私保护。原创的零知识证明协议ZK-conSNARK,无需“可信预设”更安全,优化ZKP大小,支持智能合约,可为BTC、ETH、NEO等主流数字资产实现隐私保护。 库币数字货币交易所,为来自207个国家的500万用户提供币币、法币、合约、矿池、借贷等一站式服务。全球每4个数字货币持有者就有1个是库币用户。[2020/2/25]

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

该合约将创建一个名为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一周简报

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

链链资讯

比特币ETH:4.16 以太坊午间简评

行情观点:小时盘面来看,以太早盘续刷新高,遇压2545.73一线回调,持续震荡下挫,跌破2400一线关口,探底2371.8一线,上午给出的2490-2490附近分批多,目标2560-2580.

[0:0ms0-3:584ms