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

在Remix.eth部署BSC代币出现低级交互错误:未定义receive、fallback函数

BSC合约部署"receive和fallback未定义"报错解决方案

错误触发逻辑

该报错属于EVM标准交易回滚错误:当BSC链上有原生币BNB转入目标合约地址时,EVM会优先匹配合约的receive()函数,无匹配则尝试调用带payable修饰的fallback()函数,两个函数均未定义时会直接终止交易抛出该错误。

排查步骤

  • 检查Remix部署面板的Value参数,确认是否误填了大于0的数值且单位选择了BNB/ether,部署代币合约无特殊需求时Value需设为0。
  • 检查合约构造函数constructor是否添加了不必要的payable修饰符,或构造函数内部存在触发原生币转入的逻辑。
  • 确认你的代币合约是否有接收BNB的业务需求(比如税币手续费归集、空投分发等)。

修复方案

方案1:合约无需接收BNB

将Remix部署面板的Value设为0,若构造函数加了payable修饰符直接删除,重新编译部署即可解决。

方案2:合约需要支持BNB接收

在合约代码中添加对应接收函数即可,Solidity 0.6及以上版本示例如下:

// 处理无调用数据的纯BNB转账场景
receive() external payable {
    // 无额外业务逻辑留空即可
}

// 可选:处理带调用数据的转账/调用场景
fallback() external payable {}

如果使用的Solidity版本低于0.6,直接添加如下通用 fallback 函数即可:

function() external payable {}

修改后重新编译合约再部署即可。

内容的提问来源于stack exchange,提问作者PHP DEV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:27:03