木星链 木星链
Ctrl+D收藏木星链

CON:web3 技术堆栈丨教你如何利用EVM构建一个全栈dapp

作者:

时间:1900/1/1 0:00:00

使用React、Ethers

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

}

这是一个非常基本的智能合约。部署后,它会设置一个Greeting变量并公开一个可以调用以返回问候语的函数(greet)。

它还公开了一个允许用户更新问候语的函数。当部署到以太坊区块链时,这些方法将可供用户交互。

读写以太坊区块链

Web3基础设施提供商Caldera宣布SevenX Ventures为种子轮融资参投方:4月10日消息,Web3基础设施提供商Caldera发推称,今年2月曾公布种子轮融资消息,SevenX Ventures也是种子轮融资的参投方。

据此前报道,今年2月,Caldera宣布在两轮融资中共筹集900万美元,分别由红杉资本和Dragonfly Capital领投,Neo、1kx和Ethereal Ventures以及其他天使投资人参投,资金将用于招聘、合作和整合。

据悉,Caldera支持所有用户启动和运行专用的、高性能的第二层区块链Rollup,并运行轻量级的、高度可定制的区块链,同时共享以太坊的安全性。通过为每个应用程序提供自己的“应用程序Rollup”,Caldera称其为应用程序交易提供专用通道,从而降低交易成本,并使其降低费用高峰和网络中断的风险。[2023/4/10 13:54:00]

与智能合约交互的方式有两种,读取或写入/交易。在我们的合同中,greet可以被认为是阅读,而setGreeting可以被认为是写作/事务性的。

在写入或初始化交易时,您必须为要写入区块链的交易付费。要完成这项工作,您需要支付Gas,这是在以太坊区块链上成功进行交易和执行合约所需的费用或价格。

只要您只是从区块链中读取数据而不更改或更新任何内容,您就不需要执行交易,并且这样做不会产生任何gas或成本。然后,您调用的功能仅由您连接的节点执行,因此您无需支付任何费用,并且读取是免费的。

在我们的React应用程序中,我们与智能合约交互的方式是使用ethers

//callthesmartcontract,readthecurrentgreetingvalueasyncfunctionfetchGreeting(){if(typeofwindow

exportdefaultApp;

Web3风投机构Coinsilium 2022年部署57

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

Web3游戏公司Immortal Games完成1220万美元A轮融资:9月21日消息,Web3游戏初创公司Immortal Games已于7月完成1220万美元A轮融资,此轮融资由TCG Crypto领投,Cassius、Greenfield One、Sparkle Ventures、Kraken Ventures 和 Spice Capital等机构和投资人参投。此轮融资后,其总融资额已达1550万美元。(TechCrunch)[2022/9/21 7:10:51]

请注意,此代币合约仅用于演示目的,不符合ERC20。我们将在这里介绍ERC20代币该合约将创建一个名为“NaderDabitToken”的新代币,并将供应量设置为1000000。

接下来,编译这个合约:

npxhardhatcompile

现在,更新脚本/deploy

main()

);

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

npxhardhatrunscripts/deploy

asyncfunctionfetchGreeting(){if(typeofwindow

}asyncfunctionsetGreeting(){if(!greeting)returnif(typeofwindow

}return(<divclassName="App"><headerclassName="App-header"><buttononClick={fetchGreeting}>FetchGreeting</button><buttononClick={setGreeting}>SetGreeting</button><inputonChange={e=>setGreetingValue(e

exportdefaultApp;

接下来,运行应用程序:

npmstart

我们应该能够单击“获取余额”并看到我们的帐户中有1,000,000个币已登出到控制台。

您还应该能够通过单击导入代币在MetaMask中查看它们:

通过扩展原始ERC20代币,您的代币将继承以下所有功能和功能:

functionname()publicviewreturns(string)functionsymbol()publicviewreturns(string)functiondecimals()publicviewreturns(uint8)functiontotalSupply()publicviewreturns(uint256)functionbalanceOf(address_owner)publicviewreturns(uint256balance)functiontransfer(address_to,uint256_value)publicreturns(boolsuccess)functiontransferFrom(address_from,address_to,uint256_value)publicreturns(boolsuccess)functionapprove(address_spender,uint256_value)publicreturns(boolsuccess)functionallowance(address_owner,address_spender)publicviewreturns(uint256remaining)

部署后,您可以使用这些功能中的任何一个与新的智能合约进行交互。有关ERC20代币的另一个示例,请查看[Soliditybyexample)(https://solidity-by-example.org/app/erc20/)

结论

好的,我们在这里涵盖了很多内容,但对我来说,这是开始使用这个堆栈的基本知识/核心,这也是我想要拥有的东西,不仅作为一个正在学习所有这些东西的人,而且在未来,如果我需要参考我将来可能需要的任何东西。我希望你学到了很多。

如果您想在MetaMask之外支持多个钱包,请查看Web3Modal,它可以通过相当简单且可自定义的配置轻松地在您的应用中实现对多个提供商的支持。

在我未来的教程和指南中,我将深入研究更复杂的智能合约开发,以及如何将它们部署为子图以在它们之上公开GraphQLAPI并实现分页和全文搜索等功能。

我还将介绍如何使用IPFS和Web3数据库等技术以去中心化的方式存储数据。

如果您对未来的教程有任何问题或建议,请在此处发表评论并告诉我。

标签:CONGREACTTHESCONEXGREV2IMPACTPANTHER价格

以太坊最新价格热门资讯
NFT:更多证据表明游戏开发者厌恶NFT和加密货币

最近的一项调查显示,大多数游戏开发者及其工作室对开发或使用非同质化代币(NFT)或加密支付没有兴趣.

1900/1/1 0:00:00
区块链:富兰克林邓普顿CEO:区块链和支付标记化可能会在促进环境、社会和治理相关流程方面发挥关键作用

1月15日,“2022全球财富管理论坛?上海苏河湾峰会”在上海举行,主题为“全球共同复苏下的经济金融新图景”。富兰克林邓普顿总裁兼首席执行官JennyJohnson出席并发表主题演讲.

1900/1/1 0:00:00
WEB:观点 | 文化和合理的经济机制是web3游戏最强大的护城河

原标题:《web3游戏之构建》web2游戏与web3游戏web2游戏是F2P模式,其核心是售卖装备等虚拟物品.

1900/1/1 0:00:00
CFT:美国两党议员呼吁CFTC加强加密货币监管

巴比特讯,1月12日,美国一群两党议员呼吁美国衍生品监管机构CFTC采取更多措施来监管加密货币,这对于那些希望该机构发挥更大作用的行业管理人士来说可能是个好消息.

1900/1/1 0:00:00
元宇宙:微软重金收购暴雪,顶级巨头们的元宇宙之战已经拉开帷幕

1月18日,微软宣布以687亿美元“全现金交易”形式收购游戏开发商动视暴雪,此次收购交易完成后,微软将成为全球收入第三大游戏公司,仅次于腾讯和索尼.

1900/1/1 0:00:00
WEB:继Twitter、Meta之后,YouTube或将为创作者提供探索NFT的机会?

在今日YouTube发布的致创作者的公开信中,该平台首席执行官SusanWojcicki建议,该公司将考虑采用许多新兴的Web3.0工具,包括NFT等,帮助创作者赚钱.

1900/1/1 0:00:00