合约地址无法接收ETH,转账出现out of gas、execution reverted错误如何解决
向合约地址转账ETH失败问题解决方案
你遇到的两个报错分别对应两类常见问题,可按以下步骤排查解决:
- 针对
out of gas报错:
普通ETH转账仅需消耗21000Gas,但向合约转账时,合约的收款逻辑(比如更新链上记账、发行对应凭证、触发关联交易等)会产生额外Gas消耗,仅小幅提高Gas Limit很可能仍然不足以覆盖合约执行开销,建议直接将Gas Limit调整到200000-500000区间再尝试。 - 针对
execution reverted报错:
该报错是合约主动触发的交易回滚,大概率是你触发了合约的转账限制规则,常见原因包括:- 目标合约没有定义
receive() external payable或带payable修饰的fallback函数,不支持直接向合约地址转账ETH,必须调用合约对外提供的指定payable方法完成转入 - 你不满足合约的转账准入要求,比如地址不在白名单内、转账金额不符合最低/最高限制、合约当前处于暂停转账的状态等
- 目标合约没有定义
如果按上述方法调整后仍然转账失败,可以通过本地模拟交易的方式定位回滚的具体代码位置,再针对性调整转账参数即可。
内容的提问来源于stack exchange,提问作者The White Tiger
相关产品推荐
相关产品推荐

