随着与 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
了解最新资讯,参与精彩活动,欢迎关注本体微信公众号:本体Ontology。