Browse Source

Annotate Memory-Safe Assembly (#3392)

Kartik0099 3 năm trước cách đây
mục cha
commit
3bdf4bfd29

+ 1 - 0
contracts/utils/Create2.sol

@@ -35,6 +35,7 @@ library Create2 {
         address addr;
         require(address(this).balance >= amount, "Create2: insufficient balance");
         require(bytecode.length != 0, "Create2: bytecode length is zero");
+        /// @solidity memory-safe-assembly
         assembly {
             addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)
         }

+ 2 - 0
contracts/utils/cryptography/ECDSA.sol

@@ -64,6 +64,7 @@ library ECDSA {
             uint8 v;
             // ecrecover takes the signature parameters, and the only way to get them
             // currently is to use assembly.
+            /// @solidity memory-safe-assembly
             assembly {
                 r := mload(add(signature, 0x20))
                 s := mload(add(signature, 0x40))
@@ -75,6 +76,7 @@ library ECDSA {
             bytes32 vs;
             // ecrecover takes the signature parameters, and the only way to get them
             // currently is to use assembly.
+            /// @solidity memory-safe-assembly
             assembly {
                 r := mload(add(signature, 0x20))
                 vs := mload(add(signature, 0x40))

+ 1 - 0
contracts/utils/cryptography/MerkleProof.sol

@@ -56,6 +56,7 @@ library MerkleProof {
     }
 
     function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {
+        /// @solidity memory-safe-assembly
         assembly {
             mstore(0x00, a)
             mstore(0x20, b)