【问题标题】:Solidity Remix - Failed Transaction on main chain, but working on private and alternate chainsSolidity Remix - 主链上的交易失败,但在私有链和备用链上工作
【发布时间】:2021-09-16 16:31:25
【问题描述】:

我有一个已部署的合同,具有将合同余额释放给所有者的功能。我已经在以太坊克隆链上对此进行了测试,一切都按预期运行。但是,当我在以太坊主链上部署合约时,在调用仅当所有者是调用者时才可用的函数时,我得到了失败的交易,这在 10 到 200 Gwei 之间的任何地方都会失败:

function OwnerWithdraw(uint256 _amountToDraw) public onlyOwner {        
   
    payable(owner).transfer(_amountToDraw);

}

任何帮助将不胜感激。

【问题讨论】:

  • 查看主网上owner的值,以及交易的发送者。它们是一样的吗?
  • 只是一个小更新:该功能(上图)适用于 ETH Ropsen 和另一个以太坊克隆链......但在 ETC 主网上失败 我感到困惑的是这些链上的 EVM 是如何运行的在职的?这是气体问题还是 EVM 差异?
  • 嗨@PetrHejda,感谢您的评论。是的,我以所有者的身份调用该函数,因为修饰符是:修饰符 onlyOwner() { require(msg.sender == owner); _; }

标签: ethereum solidity smartcontracts remix


【解决方案1】:

好吧,这个问题的答案很简单,我在 Ropsten 和 ETC 主网上测试了代码的修改版本。原来我在 ETC 主网上运行这些功能的 gas 限制设置得太低了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多