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

使用React、Ethers

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

}

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

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

读写以太坊区块链

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

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

新加坡将为Web3等技术提供1.5亿美元基金:8月7日消息,新加坡金融管理局(MAS)在一份声明中表示,根据新的金融部门技术和创新计划(FSTI 3.0),未来三年将向Web3初创公司和其他技术投资1.5亿美元。MAS认识到与行业合作支持Web3.0等新兴技术产生的创新金融科技解决方案的重要性,MAS将公开呼吁在行业用例中使用创新技术。将提供赠款资金以支持实际试验和商业化。

这是官方实体首次投资加密货币创新,MAS董事总经理Ravi Menon表示,我们期待与业界继续合作,推进有针对性的金融创新。[2023/8/7 21:29:59]

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

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

//callthesmartcontract,readthecurrentgreetingvalueasyncfunctionfetchGreeting(){if(typeofwindow

企业级区块链平台SettleMint推出AI助手,以辅助Web3开发人员编写智能合约:金色财经报道,企业级区块链平台SettleMint最近在其平台上推出AI助手,以帮助Web3开发人员编写智能合约。SettleMint联合创始人兼首席技术官Roderik van der Veer表示,SettleMint创造人工智能助手并不是为了取代人类,人工智能可以帮助起草智能合约,但其真正的价值在于解释每一行代码的作用。SettleMint主要在OpenAI的GPT-4上对人工智能助手进行培训,并向其提供有关区块链开发的最新信息。[2023/8/3 16:16:10]

exportdefaultApp;

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

npmstart

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

已有11家Web3公司加入谷歌云初创支持公司计划,包括Aptos、Base、Solana等:金色财经报道,截至4月25日,已有11家Web3公司加入到谷歌云初创支持公司计划,包括 Alchemy、Aptos、Base、Celo、Flow、Hedera、Nansen、Near、Polygon、Solana和 hirdweb等入围。据悉,Base Ecosystem Fund将为创业者提供优先审核,Coinbase Ventures也会将创业者介绍给其上市团队和适用的风险投资人,其他福利包括高达10,000美元 Alchemy积分以及VIP支持和与Thirdweb的免gas费用智能合约部署。 (Cointelegraph)[2023/4/26 14:28:16]

Web3游戏平台Tegro推出100万美元开发者资助计划:8月14日消息,Web3 游戏平台 Tegro 宣布推出 100 万美元开发者资助计划,为从事区块链游戏行业的游戏开发人员提供支持,每个获得该计划支持的区块链游戏开发项目预计可以获得高达 2.5 万美元的资金。

此前消息,WazirX联合创始人推出Web3游戏平台Tegro。[2022/8/14 12:24:13]

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

接下来,编译这个合约:

npxhardhatcompile

现在,更新脚本/deploy

main()

);

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

RareLink联合创始人:当前从Web2彻底转向Web3的过程中仍有两个绊脚石:3月17日消息,在“New Paradigm”系列活动第一期《Web 3.0的下一代基础设施是什么?》主题分享中,RareLink联合创始人Kai-Tai Chang认为,当前从Web2彻底转向Web3的过程中仍有两个绊脚石。一方面,许多自称去中心化的应用程序远非真正去中心化:所产生的数据依然储存在中心化的企业云上,因此它们的访问仍然依赖于传统的基础设施。另一方面,许多Web3的应用程序仍旧在交易费用昂贵,吞吐量有限和外部设施非常基础的以太坊底层上运行,因此其可扩展性十分有限。[2022/3/17 14:03:00]

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数据库等技术以去中心化的方式存储数据。

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

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

金智博客

[0:15ms0-7:189ms