【发布时间】: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