You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solidity实现ETH转入自动发放ERC20代币及定价方案咨询

ERC20代币实现ETH自动兑换功能示例代码

嘿,我完全理解你想要实现的功能——用户给合约转ETH,自动按你设定的价格发放对应数量的ERC20代币对吧?作为非专业开发者,我尽量把代码写得简洁易懂,同时用经过安全审计的标准库来降低风险,下面是完整的示例代码,还加了详细注释帮你理解:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

// 引入OpenZeppelin的标准ERC20和Ownable合约,这些都是经过安全审计的
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

// 我们的代币合约继承自ERC20和Ownable
contract EthSwapToken is ERC20, Ownable {
    // 存储ETH到代币的兑换价格:单位是「每个wei ETH可兑换的代币最小单位数量」
    // 举个例子:如果设置为1000,意味着1 wei ETH换1000 wei代币 → 1 ETH(1e18 wei)换1000个完整代币(假设代币小数位是18)
    uint256 public ethToTokenPrice;

    // 构造函数:初始化代币名称、符号,以及初始兑换价格
    // 这里的初始价格设为1000,也就是1 ETH换1000代币
    constructor() ERC20("EthSwapToken", "EST") Ownable(msg.sender) {
        ethToTokenPrice = 1000;
    }

    // 当合约收到ETH时自动触发的函数,处理兑换逻辑
    receive() external payable {
        // 计算要发放的代币数量:收到的ETH数量(wei) × 兑换价格
        uint256 tokenAmount = msg.value * ethToTokenPrice;
        // 给ETH转账者mint对应数量的代币
        _mint(msg.sender, tokenAmount);
    }

    // 只有合约所有者能调用的函数,用来更新兑换价格
    // 比如后续想调整1 ETH换2000代币,就调用这个函数传入2000
    function setEthToTokenPrice(uint256 newPrice) external onlyOwner {
        ethToTokenPrice = newPrice;
    }
}

关键细节解释:

  • 为什么用OpenZeppelin? 作为非专业开发者,直接使用经过社区广泛验证和安全审计的标准库,能避免很多自己写代码可能出现的安全漏洞(比如整数溢出、权限问题等),Solidity 0.8+虽然自带溢出检查,但OpenZeppelin还提供了很多成熟的功能实现。
  • 兑换价格的单位:这里的ethToTokenPrice是「每个wei ETH能换的代币最小单位数量」,如果你的代币小数位不是默认的18,需要调整这个值的计算逻辑,确保兑换比例符合你的预期。
  • receive函数:这是Solidity中专门用来处理ETH转账的函数,当用户直接给合约地址转ETH时,这个函数会自动执行,完成代币发放。
  • Ownable权限控制:setEthToTokenPrice函数加上了onlyOwner修饰符,只有部署合约的地址能修改价格,防止其他人随意调整兑换比例。

注意事项:

  1. 测试先行:部署到主网之前,一定要在以太坊测试网(比如Sepolia)上完整测试所有功能,确保转ETH后能正确收到代币,价格调整功能也正常工作。
  2. 安全意识:虽然用了标准库,但合约部署后就无法修改(除了我们设置的价格调整功能),所以部署前要仔细检查代码,确认逻辑符合你的需求。
  3. 代币小数位:如果你的代币需要设置不同的小数位(比如6位),可以在ERC20构造函数里添加第三个参数,比如ERC20("EthSwapToken", "EST", 6),同时要对应调整ethToTokenPrice的数值,保证兑换比例正确。

内容的提问来源于stack exchange,提问作者Crypto Lover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:17:21