Quay lại tất cả tin tức

EVM特辑 | EVM Contract,Web3开发进阶之路

随着与 DoraHacks 联合举办的黑客松的持续火热推进,已经有不少项目申请参与这场盛会,相信还有更多的小伙伴正跃跃欲试,却苦于缺少合适的开发环境与称手的工具来部署 EVM 合约。  那么本文就来为大家一一解决这些难题。


部署开发环境与工具


我们都知道 EVM 智能合约最早是基于以太坊网络搭建,使用 Solidity 语言编写。因此,开发者可以使用现有的以太坊合约框架来开发和部署本体 EVM 中的合约。


Remix


Remix IDE 是一个用于 EVM 合约的开源开发环境。你可以通过以下几个步骤来部署:


  • Initialize Remix,初始化环境并创建一个基于 Solidity 环境的合约文件。
  • Compile Contract,使用0.5.10编译器对创建的合约文件进行编辑。
  • Deploy Contract,在本体 EVM 网络中部署已经编译完的合约。
  • Invoke Contract,调用合约。


更加详细的 Remix IDE 文档可以通过下方链接?获取:


https://remix-ide.readthedocs.io/en/latest/


Truffle


Truffle 为 EVM 合约开发、测试和管理提供了工具和框架。使用 Truffle 时开发者需要经过以下几步:


  • Install Truffle,首先初始化并安装依赖项,随后运行代码来安装 Truffle。
  • Configure truffle-config,创建一个新.secret来存储助记词或私钥,随后编辑truffle-config 代码。
  • Deploy Contract,使用 Truffle 将已经开发好的合约迁移到本体 EVM 网络中。


如需获取更加详细的信息,可复制下方链接?:


https://trufflesuite.com/docs/truffle/quickstart


Hardhat


Hardhat 是一个以太坊开发环境。该环境的使用和上文的 Truffle 基本一致,文章中不加赘述:


  • Install Hardhat
  • Configure hardhat-config
  • Deploy Contract


关于 Hardhat 的安装步骤,可参考 Hardhat 文档:


https://hardhat.org/getting-started/


设置 MetaMask


想要部署和执行 EVM 合约,首先你需要设置用于合约部署和执行的去中心化 Web3 入口客户端。在 本体 EVM 集成之际,我们已经支持了 MetaMask,因此你可以使用 MetaMask 浏览器插件来管理以太坊地址的私钥。


当拥有 MetaMask 后,就可以通过以下步骤进行设置:


  • Initialize Web3,创建 Web3 实例,在 MetaMask 中加入全局对象 ethereum,并运行一些代码调用函数。
  • Set up Account,获取前一步创建实例时用到的账户。
  • Initialize Contract,初始化合约。
  • Call Functions,可以通过直接与实例化合约进行交互来调用函数。


开发合约


由于这一步需要具体环境,因此我们将基于 Hardhat 进行讲解。具体开发步骤也分为三个大环节:


设置环境


  • 安装 nodejs
  • 安装 Hardhat


设计合约


  • Contract Logic,根据合约的核心功能定义数据结构。


示例:想要做一个发红包的应用,其核心功能就是发红包与收红包。那么,需要根据这两个功能拆分更为详细的使用流程,比如发红包之前需要用户确定发的金额和红包数量。


  • Define Contract Events,通过添加事件来追踪整个合约执行的过程


示例:事件一,用户发红包;事件二,用户收到红包。


  • Define Functions,调用函数以完成整个收发红包的流程。


使用 Hardhat 编译和测试合约


  • Create a Hardhat Project
  • Configure hardhat.config
  • File Preparation,在文件夹中添加合约文件 contracts。
  • Include Code in the test Folder
  • Compile Contract,在根目录下运行代码编译合约。
  • Test Contract


如果顺利完成以上步骤,那么恭喜你?一个基于本体 EVM 打造的 dApp 新鲜出炉~如果你想加入本体 EVM,如果你想拥有一个自己的 dApp,赶紧跟着以上步骤大展身手!


P.s. 所有以上需要使用的代码,均可在技术文档 EVM Contract 中找到,链接?:


https://docs.ont.io/guides-and-tutorials/development-guides/smart-contract-dev/evm-contract