1

我在代理后备中有此代码:

assembly {
    calldatacopy(mload(0x40), 0, calldatasize())
    let result := delegatecall(gas(), destination, mload(0x40), calldatasize(), mload(0x40), 0)
    returndatacopy(mload(0x40), 0, returndatasize())
    switch result
    case 1 { return(mload(0x40), returndatasize()) }
    default { revert(mload(0x40), returndatasize()) }
}

destination当地址为零(0x00000000000000000000000)时,就会出现问题。delegatecall 经过,返回1,然后case 1返回数据完全为空,这会触发... did it run out of gas错误(这与问题无关)。

我刚刚从 Ganache 切换到最新的 Hardhat 和 web3 (v1.6.1),这会遇到问题default并恢复。有什么我不知道或最近发生了变化吗?

4

0 回答 0