宇宙链 宇宙链
Ctrl+D收藏宇宙链

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

作者:

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

使用React、Ethers

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

}

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

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

读写以太坊区块链

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

Web3 能力聚合方案 Daylight 推出 Ability API:4月4日消息,Web3 能力聚合方案 Daylight 宣布推出 Ability API,允许钱包应用为其用户提供空投、铸币、投票、代币门控(token gates)等信息。

Daylight 于去年完成 300 万美元种子轮融资,Framework Ventures 和 Chapter One 领投。[2023/4/5 13:44:56]

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

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

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

//callthesmartcontract,readthecurrentgreetingvalueasyncfunctionfetchGreeting(){if(typeofwindow

exportdefaultApp;

a16z合伙人:Web 3和NFT可解决互联网缺乏所有权和依赖广告问题:11月9日消息,a16z合伙人Chris Dixon在推特上发文称,缺乏真正所有权和依赖广告是互联网的原罪,现在终于有工具来解决这个问题了,这个工具就是Web 3和NFT。Chris Dixon认为,如今某些类别的Web 2网站和APP已经陷入可用性/货币化死亡旋涡,这些网站和APP依赖广告并通过更低的按展示计费标准获利,其动机是添加更多侵入性广告以提高点击率,但引入更多侵入性广告的结果会导致用户体验下降,继而导致流量下降。[2021/11/9 6:40:35]

要对其进行测试,请启动React服务器:

npmstart

当应用程序加载时,您应该能够获取当前问候语并将其注销到控制台。您还应该能够通过与您的MetaMask钱包签署合约并使用Ether测试币来更新greeting。

Arweave开启开放式网络孵化器Open Web Incubator:Arweave宣布将于7月1日-8月12日期间开启开放式网络孵化器Open Web Incubator。参与该活动的项目将通过快速通道接受专家级的培训和支持,最佳项目还有机会100000美元的投资额。(Medium)[2020/7/2]

请注意,此代币合约仅用于演示目的,不符合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数据库等技术以去中心化的方式存储数据。

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

标签:GREINGETITINDash GreenDarryringCoin币metis币还会大涨吗Hostinkey

狗狗币最新价格热门资讯
10省市将数字人民币纳入金融“十四五” 标准研制有望提速

据证券日报2月17日报道,日前,重庆市发布《重庆市金融改革发展“十四五”规划》指出,争取开展法定数字货币试点,探索数字人民币的国际应用场景。梳理发现,自2021年6月份以来,数字人民币渐成各地金融“十四五”规划高频词汇.

1900/1/1 0:00:00
深度|从互联网的起源到去中心化Web 3.0

Webs(1,2,3)的定义并不严格;对于一个人来说,严格的Web定义可能只是对另一个阶段的两个阶段之间的虚拟边界的侵入。有些人不会尝试根据技术里程碑将Web归入类别,而只是将新的和即将推出的内容与已经过时或用作标准的内容区分开来.

1900/1/1 0:00:00
Julian Lennon正在出售披头士乐队纪念品NFT

据Cryptoglobe1月29日消息,英国摇滚手朱利安·列侬正在出售披头士乐队和其父亲约翰·列侬的纪念品NFT,不包括实物。该系列NFT包括保罗·麦卡特尼关于歌曲"HeyJude"的手写笔记,以及约翰·列侬在乐队里穿的衣服.

1900/1/1 0:00:00
元宇宙的发展将依靠哪5个关键性技术?

扩展现实技术已经不是什么新鲜事了,但我们与这些技术的互动方式在过去几年中发生了急速的变化。随着越来越多的企业在这一领域争夺霸主地位,这些创新技术的前景对许多人来说变得有些迷茫和不确定.

1900/1/1 0:00:00
融资新闻丨Backed完成1.697亿美元融资,投资欧洲科技企业

2月22日消息,Backed筹集了1.697亿美元,用于投资欧洲各种游戏和科技行业的科技企业。这个总部位于伦敦的基金是Backed筹集的第二个基金,该基金表示,其重点是通过以人为本的模式来支持欧洲的种子企业家.

1900/1/1 0:00:00
去中心化物联网平台DIMO开发公司完成900万美元融资,CoinFund等参投

据Coindesk2月15日消息,去中心化物联网平台DIMO背后开发公司DigitalInfrastructureInc宣布完成900万美元融资.

1900/1/1 0:00:00