目前常用两种方式判断目标地址是否为合约,如下所示
1 | pragma solidity ^0.7.0; |
第一种根据目标地址的代码是否为空判断,extcodesize 操作码 gas 消耗为 700。
另一种是根据目标代码 keccack256 的哈希来判断,参考 EIP1052,空值哈希正好是 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
,extcodehash 操作码 gas 消耗为 400。
目前常用两种方式判断目标地址是否为合约,如下所示
1 | pragma solidity ^0.7.0; |
第一种根据目标地址的代码是否为空判断,extcodesize 操作码 gas 消耗为 700。
另一种是根据目标代码 keccack256 的哈希来判断,参考 EIP1052,空值哈希正好是 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
,extcodehash 操作码 gas 消耗为 400。