diff --git a/contracts/utils/Create2.sol b/contracts/utils/Create2.sol index 40164c1e2..567914b78 100644 --- a/contracts/utils/Create2.sol +++ b/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) } diff --git a/contracts/utils/cryptography/ECDSA.sol b/contracts/utils/cryptography/ECDSA.sol index b2db6bd77..c7115f27a 100644 --- a/contracts/utils/cryptography/ECDSA.sol +++ b/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)) diff --git a/contracts/utils/cryptography/MerkleProof.sol b/contracts/utils/cryptography/MerkleProof.sol index db7d5894a..23ef1f077 100644 --- a/contracts/utils/cryptography/MerkleProof.sol +++ b/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)