Переглянути джерело

Replace excodesize assembly with address.code.length (https://github.com/ethereum/solidity/releases/tag/v0.8.1) (#3025)

Anton Bukov 3 роки тому
батько
коміт
d95cdaae8e
1 змінених файлів з 4 додано та 8 видалено
  1. 4 8
      contracts/utils/Address.sol

+ 4 - 8
contracts/utils/Address.sol

@@ -34,15 +34,11 @@ library Address {
      * ====
      */
     function isContract(address account) internal view returns (bool) {
-        // This method relies on extcodesize, which returns 0 for contracts in
-        // construction, since the code is only stored at the end of the
-        // constructor execution.
+        // This method relies on extcodesize/address.code.length, which returns 0
+        // for contracts in construction, since the code is only stored at the end
+        // of the constructor execution.
 
-        uint256 size;
-        assembly {
-            size := extcodesize(account)
-        }
-        return size > 0;
+        return account.code.length > 0;
     }
 
     /**