5ire EVM Chain
5ire IDE
注意:为了开始使用5ire IDE,用户必须设置和配置他们的钱包。前往本节,开始设置你的5ire钱包。
第1步: 进入5ire IDE平台.
第2步 从左面板菜单进入工作区,选择创建新文件图标.
第3步:在合同文件夹下创建一个新文件,名称为 "5ire.sol"
- 一个新的文件将被生成,而主面板将出现空白。
注意:.sol是Solidity文件的扩展名。
第4步:编写代码
你可以在5ire.sol文件的主面板上粘贴你现有的代码,或者在工作区上传你的合同文件。
你也可以使用下面的ERC-20代码样本:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
interface IERC20 {
function totalSupply() external view returns (uint);
function balanceOf(address account) external view returns (uint);
function transfer(address recipient, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract ERC20 is IERC20 {
uint public totalSupply;
mapping(address => uint) public balanceOf;
mapping(address => mapping(address => uint)) public allowance;
string public name = "Solidity by Example";
string public symbol = "SOLBYEX";
uint8 public decimals = 18;
function transfer(address recipient, uint amount) external returns (bool) {
balanceOf[msg.sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(msg.sender, recipient, amount);
return true;
}
function approve(address spender, uint amount) external returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool) {
allowance[sender][msg.sender] -= amount;
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function mint(uint amount) external {
balanceOf[msg.sender] += amount;
totalSupply += amount;
emit Transfer(address(0), msg.sender, amount);
}
function burn(uint amount) external {
balanceOf[msg.sender] -= amount;
totalSupply -= amount;
emit Transfer(msg.sender, address(0), amount);
}
}
粘贴上述代码后,你的屏幕将出现这种情况:
第5步: 编译
从左侧面板转到 Solidity Compiler。
要编译一个合同,要么从文件资源管理器中选择所需的文件,要么确保所需的文件是编辑器中的活动文件,如果有多个文件打开的话。
如果在文件资源管理器中选择了一个活动文件,那么solidity编译器将看起来像这样:
点击编译5ire.sol来编译合同文件。
编译成功后,你的屏幕会是这个样子
第6步: 部署
从左侧面板进入部署和运行交易的侧边栏。
为了使用这个模块,必须有一个编译好的合同。因此,如果在CONTRACT选择框中有一个合同名称(选择框在VALUE输入字段下),你就可以使用这个模块。
- 5ire提供者: 用于将5ire IDE连接到一个注入的web3提供者。最常见的注入提供者是MetaMask和5ire Wallet扩展
- Hardhat 提供器: 用于将5ire IDE连接到本地Hardhat测试链。
- Ganache提供器: 用于将5ire IDE连接到本地Truffle Ganache测试链。
- 单击 "部署"。
- 确认Web3扩展上的交易。
视频教程:
- 一旦交易被确认,部署的细节、合同地址和交易,将在终端中可见:
使用资源管理器
第1步:克隆5ireChain节点
- 在你的系统上,打开一个终端外壳。
- 通过运行以下命令克隆firechain-evm-base节点库:
HTTPS:
https://github.com/5ire-tech/5ire-evm-base.git
SSH:
[email protected]:5ire-tech/5ire-evm-base.git
第2步: 连接到节点
- 如果需要,在你的本地系统上打开一个终端外壳。
- 改变你编译5ire EVM基础的根目录。
- 通过运行以下命令,在开发模式下启动节点:
Cargo build –release
./target/release/firechain-node --dev
(它将在开发模式下运行节点)。
注意:Cargo build编译了代码。
--dev命令行选项表示节点使用预定义的开发链规范运行,其中包括Alice的指定EVM账户,以及其他专门为测试目的设置的账户。
- 在查看终端显示的输出后,你可以验证你的节点是否已经成功启动和运行。
终端应该显示与此类似的输出:
- 使用Polkadot-JS应用程序来连接到本地节点。
在顶栏中,点击开发者下拉菜单。
创建代币合约。
注意:为了方便,你可以使用MyToken.json中的代币合约的编译字节码,在5ire EVM链上部署合约。
选择Extrinsics。
对于提交交易,选择一个有资金的账户开发账户作为账户。
选择EVM(Ethereum虚拟机)。
选择创建函数。
配置函数的参数。
For this | Specify this |
---|---|
Source | 0xd43593c715fdd31c61141abd04a99fd6822c8558 (H160 Address of your Selected Account) |
Init | Enter the token raw bytecode |
Value | 0 |
Gas Limit | 42949672 |
Max Fee Per Gas | 1000000 |
可选参数可以留空。nonce值将增加已知的nonce,用于源账户的目的。这是从0x0开始的。主要取决于所选的功能,你将不得不删除未使用的参数。
按提交交易。这将开始完成你的交易过程。
要授权该交易,请点击提交并签名。这将导致交易的完成。
Remix IDE
您可以通过以下步骤使用Remix IDE在5ire EVM链上部署一个智能合约:
第1步: 为启动交易,请访问此链接。
为启动交易,请访问此链接
第2步: 在工作空间下,点击创建新文件。这将帮助您创建一个新的文件,您可以开始在5ire EVM链上部署智能合约的工作。
第3步:在合约下创建一个新文件,名称为5ire.sol。这将帮助你创建一个新的程序,通过它你可以在5ire上部署一个智能合约。
第4步: 复制并粘贴下面的代码到5ire.sol文件中.
我们这里有一个ERC-20代币的示例代码:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
interface IERC20 {
function totalSupply() external view returns (uint);
function balanceOf(address account) external view returns (uint);
function transfer(address recipient, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract ERC20 is IERC20 {
uint public totalSupply;
mapping(address => uint) public balanceOf;
mapping(address => mapping(address => uint)) public allowance;
string public name = "Solidity by Example";
string public symbol = "SOLBYEX";
uint8 public decimals = 18;
function transfer(address recipient, uint amount) external returns (bool) {
balanceOf[msg.sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(msg.sender, recipient, amount);
return true;
}
function approve(address spender, uint amount) external returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool) {
allowance[sender][msg.sender] -= amount;
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function mint(uint amount) external {
balanceOf[msg.sender] += amount;
totalSupply += amount;
emit Transfer(address(0), msg.sender, amount);
}
function burn(uint amount) external {
balanceOf[msg.sender] -= amount;
totalSupply -= amount;
emit Transfer(msg.sender, address(0), amount);
}
}
在你插入上述代码后,你的屏幕将出现这种情况:
第5步:点击Solidity Compiler并点击编译5ire.sol。
第6步:单击 "部署和运行交易 "来执行你所需要的交易。
第7步:部署合同5ire.sol。选择Injected Web3来部署到实时网络。在这种情况下,我们选择MetaMask作为注入的提供者。
第8步:验证细节后确认交易。你必须输入钱包地址以及将被转移到接收账户的金额。
第9步:在MetaMask中确认gas费用,在5ire EVM链上部署交易(gas费用是小额交易费,用于完成交易)。
第十步: 在Remix中找到已部署的合同地址,并通过与综合功能互动来更新合同。
Ganache
Ganache是一个私有的以太坊区块链环境,允许你模拟以太坊区块链,在私有区块链中与智能合约互动。它可以运行测试,执行命令,并检查状态,同时控制链的运行方式。
访问这个链接下载Ganache。
下面的指南将引导你完成使用Ganache部署智能合约的过程:
第1步: 在浏览器中打开Remix IDE,在合约部分创建一个新文件。
第2步:使用其中一个示例代码模板,并通过点击编译按钮进行编译,如下图所示。
第3步:编译后,在你的桌面上打开Ganache。你的显示将类似于下面的插图。点击QUICKSTART Ethereum。
第4步:你现在会看到10个默认账户,以及你的区块链在本地RPC服务器(HTTP:/127.0.0.1:7545)的助记词,如下图所示:
第5步:回到浏览器,移动到编译下面的部署部分,从环境中选择Ganache提供者,如下图所示:
第6步:输入服务器HTTP:/127.0.0.1:7545作为Ganache提供者。你的屏幕将看起来像下面显示的图像:
第7步:你的合同现在已经准备好部署了! 点击 "部署 "按钮来继续。
第8步:检查输出标签,以验证你的合同是否已成功部署。
第9步:要验证您的交易(进程)是否成功地反映在服务器上,请打开Ganache并移动到交易。在这里,你会看到你的交易的细节,如下图所示:
视频教程:
Hardhat
本指南概述了使用Hardhat部署EVM智能合约的过程,这将在5ire EVM IDE上进行。
第1步: 首先创建一个项目文件夹。在本指南中,项目文件夹的标题是 "mkdir hardhat-tutorial"。
第2步:运行命令npx hardhat。
第3步:下一步是在提示 "你想做什么?"的问题时,选择创建一个Javascript/Typescript项目。
第4步:添加在开始时创建的硬帽项目根。
第5步:按 "Y "完成这一过程。
第6步:完成这一过程后,你的屏幕外观将如下图所示。
第7步:打开Remix IDE,选择部署和运行交易。
第8步:选择硬帽供应商。
第9步:如果连接已经建立,你会看到链ID和账户列表。
第10步: 运行命令npx hardhat node。然后,它将显示一个余额为10000ETH的20个账户的列表。
第11步:通过点击部署,你可以启动特定智能合约的部署,如果一切顺利,你的交易就会成功。
第12步:你可以通过检查终端来验证你的交易是否完成
视频教程: