如何部署一个基本符合ERC20的智能合约

运行genache-cli

  • 运行以下命令
    genache-cli
    
    在这里插入图片描述

下载MetaMask浏览器拓展钱包

  • 添加账户
    在这里插入图片描述

  • 导入账户
    在这里插入图片描述

  • 输入genache-cli生成其中的密钥
    在这里插入图片描述

  • 选择【显示测试网络】点击【添加网络】
    在这里插入图片描述

  • 添加自己本地的网络
    在这里插入图片描述

  • 选择该测试网络,账号里就会有100RETH
    在这里插入图片描述

在remix里接通这个测试帐号

  • 要在浏览器端的remix

    // SPDX-License-Identifier: GPL-3.0
    
    pragma solidity >=0.8.2 <0.9.0;
    
    contract BalanceManager {
        mapping(address=>uint256) public balanceOf; // 余额
        
        string public name = "MYDOLLAR";
        string public symbol = "$";
        uint8 public decimals = 4;
        
        constructor(uint totalBalance){
            //msg.sender;
            balanceOf[msg.sender] = totalBalance;
        }
    
    
        // 转账
        function transfer(address to, uint256 amount) public {
            //msg.sender
            address from = msg.sender;
            uint256 fb = balanceOf[from];
            uint256 tb = balanceOf[to];
    
            require(amount <= fb, "from account do not have enough money!");
    
            fb -= amount;
            tb += amount;
            balanceOf[from] = fb;
            balanceOf[to] = tb;
    
        }  
    }
    
  • EVM版本这里默认会是default,而如果是default的时候又会默认是cancun,推荐选london

  • 选择特定的 EVM 版本取决于你智能合约的需求和目标网络的兼容性。不同的 EVM 版本会引入新的特性和更改,选择合适的版本可以确保合约的正确运行和优化。london 是一个常用的版本,因为它包含了一些关键的改进和优化,所以我们可以选london
    在这里插入图片描述

  • 选择MetaMask区块链
    在这里插入图片描述

  • 输入,确认
    在这里插入图片描述
    在这里插入图片描述

  • 验证是否生效在这里插入图片描述
    在这里插入图片描述

添加代币

  • 复制合约地址
    在这里插入图片描述
  • 点击新增代币填入
    在这里插入图片描述
    在这里插入图片描述
  • 导入
    在这里插入图片描述
    在这里插入图片描述
    然后就可以在MetaMask中进行测试交易了
    在这里插入图片描述
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的ERC20智能合约示例: ```solidity pragma solidity ^0.8.0; contract ERC20Token { string public name; string public symbol; uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; constructor(string memory _name, string memory _symbol, uint256 _totalSupply) { name = _name; symbol = _symbol; totalSupply = _totalSupply; balanceOf[msg.sender] = _totalSupply; } function transfer(address _to, uint256 _value) public returns (bool success) { require(balanceOf[msg.sender] >= _value, "Insufficient balance"); balanceOf[msg.sender] -= _value; balanceOf[_to] += _value; emit Transfer(msg.sender, _to, _value); return true; } function approve(address _spender, uint256 _value) public returns (bool success) { allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(balanceOf[_from] >= _value, "Insufficient balance"); require(allowance[_from][msg.sender] >= _value, "Insufficient allowance"); balanceOf[_from] -= _value; balanceOf[_to] += _value; allowance[_from][msg.sender] -= _value; emit Transfer(_from, _to, _value); return true; } event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } ``` 该合约包括以下功能: - `name`:代币名称 - `symbol`:代币符号 - `totalSupply`:代币总量 - `balanceOf`:每个地址的代币余额 - `allowance`:允许其他地址花费的代币数量 该合约实现了ERC20标准中的以下函数: - `transfer`:从调用者的地址向另一个地址发送代币 - `approve`:允许另一个地址花费指定数量的代币 - `transferFrom`:从一个地址向另一个地址发送代币,前提是已经获得了允许 该合约还定义了两个事件: - `Transfer`:代币发送时触发 - `Approval`:允许花费代币时触发 要部署这个合约,你需要使用Solidity编译器将其编译为字节码,然后将字节码发送到以太坊网络上。你可以使用Remix或Truffle等工具来编译和部署智能合约

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值