@1inch/solidity-utils 6.7.1 → 6.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +36 -0
- package/contracts/libraries/Calldata.sol +81 -0
- package/contracts/libraries/CalldataPtr.sol +41 -0
- package/contracts/libraries/Transient.sol +240 -0
- package/contracts/libraries/TransientLock.sol +59 -0
- package/contracts/mixins/Multicall.sol +28 -0
- package/contracts/mixins/ReentrancyGuard.sol +92 -0
- package/contracts/mixins/Simulator.sol +30 -0
- package/dist/hardhat-setup/networks.js +2 -1
- package/dist/hardhat-setup/networks.js.map +1 -1
- package/dist/typechain-types/contracts/libraries/Transient.sol/TransientLib.d.ts +20 -0
- package/dist/typechain-types/contracts/libraries/Transient.sol/TransientLib.js +3 -0
- package/dist/typechain-types/contracts/libraries/Transient.sol/TransientLib.js.map +1 -0
- package/dist/typechain-types/contracts/libraries/Transient.sol/index.d.ts +1 -0
- package/dist/typechain-types/contracts/libraries/Transient.sol/index.js +3 -0
- package/dist/typechain-types/contracts/libraries/Transient.sol/index.js.map +1 -0
- package/dist/typechain-types/contracts/libraries/TransientLock.sol/TransientLockLib.d.ts +20 -0
- package/dist/typechain-types/contracts/libraries/TransientLock.sol/TransientLockLib.js +3 -0
- package/dist/typechain-types/contracts/libraries/TransientLock.sol/TransientLockLib.js.map +1 -0
- package/dist/typechain-types/contracts/libraries/TransientLock.sol/index.d.ts +1 -0
- package/dist/typechain-types/contracts/libraries/TransientLock.sol/index.js +3 -0
- package/dist/typechain-types/contracts/libraries/TransientLock.sol/index.js.map +1 -0
- package/dist/typechain-types/contracts/libraries/index.d.ts +4 -0
- package/dist/typechain-types/contracts/mixins/Multicall.d.ts +25 -0
- package/dist/typechain-types/contracts/mixins/Multicall.js +3 -0
- package/dist/typechain-types/contracts/mixins/Multicall.js.map +1 -0
- package/dist/typechain-types/contracts/mixins/ReentrancyGuard.d.ts +20 -0
- package/dist/typechain-types/contracts/mixins/ReentrancyGuard.js +3 -0
- package/dist/typechain-types/contracts/mixins/ReentrancyGuard.js.map +1 -0
- package/dist/typechain-types/contracts/mixins/Simulator.d.ts +35 -0
- package/dist/typechain-types/contracts/mixins/Simulator.js +3 -0
- package/dist/typechain-types/contracts/mixins/Simulator.js.map +1 -0
- package/dist/typechain-types/contracts/mixins/index.d.ts +3 -0
- package/dist/typechain-types/contracts/tests/mocks/CalldataMock.d.ts +81 -0
- package/dist/typechain-types/contracts/tests/mocks/CalldataMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/CalldataMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/CalldataPtrMock.d.ts +51 -0
- package/dist/typechain-types/contracts/tests/mocks/CalldataPtrMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/CalldataPtrMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/MulticallMock.d.ts +53 -0
- package/dist/typechain-types/contracts/tests/mocks/MulticallMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/MulticallMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/IReentrancyAttacker.d.ts +29 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/IReentrancyAttacker.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/IReentrancyAttacker.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyAttacker.d.ts +41 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyAttacker.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyAttacker.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyGuardMock.d.ts +96 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyGuardMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyGuardMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/index.d.ts +3 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/index.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/ReentrancyGuardMock.sol/index.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/SimulatorMock.d.ts +47 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/SimulatorMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/SimulatorMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/SimulatorTarget.d.ts +41 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/SimulatorTarget.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/SimulatorTarget.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/index.d.ts +2 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/index.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/SimulatorMock.sol/index.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/TransientLockMock.d.ts +49 -0
- package/dist/typechain-types/contracts/tests/mocks/TransientLockMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/TransientLockMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/TransientMock.d.ts +107 -0
- package/dist/typechain-types/contracts/tests/mocks/TransientMock.js +3 -0
- package/dist/typechain-types/contracts/tests/mocks/TransientMock.js.map +1 -0
- package/dist/typechain-types/contracts/tests/mocks/index.d.ts +9 -0
- package/dist/typechain-types/factories/@0xsequence/create3/contracts/Create3__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@0xsequence/create3/contracts/Create3__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/Transient.sol/TransientLib__factory.d.ts +30 -0
- package/dist/typechain-types/factories/contracts/libraries/Transient.sol/TransientLib__factory.js +50 -0
- package/dist/typechain-types/factories/contracts/libraries/Transient.sol/TransientLib__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/libraries/Transient.sol/index.d.ts +1 -0
- package/dist/typechain-types/factories/contracts/libraries/Transient.sol/index.js +9 -0
- package/dist/typechain-types/factories/contracts/libraries/Transient.sol/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/libraries/TransientLock.sol/TransientLockLib__factory.d.ts +30 -0
- package/dist/typechain-types/factories/contracts/libraries/TransientLock.sol/TransientLockLib__factory.js +50 -0
- package/dist/typechain-types/factories/contracts/libraries/TransientLock.sol/TransientLockLib__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/libraries/TransientLock.sol/index.d.ts +1 -0
- package/dist/typechain-types/factories/contracts/libraries/TransientLock.sol/index.js +9 -0
- package/dist/typechain-types/factories/contracts/libraries/TransientLock.sol/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/index.d.ts +2 -0
- package/dist/typechain-types/factories/contracts/libraries/index.js +4 -1
- package/dist/typechain-types/factories/contracts/libraries/index.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mixins/Multicall__factory.d.ts +32 -0
- package/dist/typechain-types/factories/contracts/mixins/Multicall__factory.js +53 -0
- package/dist/typechain-types/factories/contracts/mixins/Multicall__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/mixins/ReentrancyGuard__factory.d.ts +11 -0
- package/dist/typechain-types/factories/contracts/mixins/ReentrancyGuard__factory.js +25 -0
- package/dist/typechain-types/factories/contracts/mixins/ReentrancyGuard__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/mixins/Simulator__factory.d.ts +56 -0
- package/dist/typechain-types/factories/contracts/mixins/Simulator__factory.js +84 -0
- package/dist/typechain-types/factories/contracts/mixins/Simulator__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/mixins/index.d.ts +3 -0
- package/dist/typechain-types/factories/contracts/mixins/index.js +7 -1
- package/dist/typechain-types/factories/contracts/mixins/index.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/CalldataMock__factory.d.ts +106 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/CalldataMock__factory.js +151 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/CalldataMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/CalldataPtrMock__factory.d.ts +82 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/CalldataPtrMock__factory.js +121 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/CalldataPtrMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/Create3Mock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/Create3Mock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/Create3Mock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/MulticallMock__factory.d.ts +102 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/MulticallMock__factory.js +143 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/MulticallMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/IReentrancyAttacker__factory.d.ts +19 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/IReentrancyAttacker__factory.js +34 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/IReentrancyAttacker__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyAttacker__factory.d.ts +72 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyAttacker__factory.js +104 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyAttacker__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyGuardMock__factory.d.ts +128 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyGuardMock__factory.js +171 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/ReentrancyGuardMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/index.d.ts +3 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/index.js +13 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/ReentrancyGuardMock.sol/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/RevertReasonForwarderMock.sol/RevertReasonForwarderHelper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/RevertReasonForwarderMock.sol/RevertReasonForwarderHelper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/RevertReasonForwarderMock.sol/RevertReasonForwarderHelper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/RevertReasonForwarderMock.sol/RevertReasonForwarderMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/RevertReasonForwarderMock.sol/RevertReasonForwarderMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/RevertReasonForwarderMock.sol/RevertReasonForwarderMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/SimulatorMock__factory.d.ts +86 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/SimulatorMock__factory.js +123 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/SimulatorMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/SimulatorTarget__factory.d.ts +76 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/SimulatorTarget__factory.js +111 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/SimulatorTarget__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/index.d.ts +2 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/index.js +11 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/SimulatorMock.sol/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/TransientLockMock__factory.d.ts +80 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/TransientLockMock__factory.js +112 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/TransientLockMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/TransientMock__factory.d.ts +192 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/TransientMock__factory.js +264 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/TransientMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/index.d.ts +7 -0
- package/dist/typechain-types/factories/contracts/tests/mocks/index.js +13 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/index.js.map +1 -1
- package/dist/typechain-types/index.d.ts +30 -0
- package/dist/typechain-types/index.js +32 -2
- package/dist/typechain-types/index.js.map +1 -1
- package/package.json +8 -6
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
Contributing to 1inch
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
Thanks for taking the time to contribute! All types of contributions are encouraged and valued. Please make sure to read the sections below before making your contribution. It will make it a lot easier for maintainers and speeds up the merge of your contribution.
|
|
5
|
+
|
|
6
|
+
## Creating Pull Requests (PRs)
|
|
7
|
+
|
|
8
|
+
As a contributor, you are expected to fork this repository, work on your own fork and then submit pull requests. The pull requests will be reviewed and eventually merged into the main repo.
|
|
9
|
+
|
|
10
|
+
## A typical workflow
|
|
11
|
+
|
|
12
|
+
1) Before contributing any changes it is a good practice to open an issue and provide the reasoning for the changes
|
|
13
|
+
1) Make sure your fork is up to date with the main repository
|
|
14
|
+
2) Update all dependencies to the latest version
|
|
15
|
+
```
|
|
16
|
+
yarn
|
|
17
|
+
```
|
|
18
|
+
3) Branch out from `master` into `fix/some-bug-#123`
|
|
19
|
+
(Postfixing #123 will associate your PR with the issue #123)
|
|
20
|
+
4) Make your changes, add your files, commit and push to your fork.
|
|
21
|
+
Before pushing the branch ensure that:
|
|
22
|
+
* JS and Solidity linting tests pass
|
|
23
|
+
```
|
|
24
|
+
yarn lint
|
|
25
|
+
```
|
|
26
|
+
* New and/or fixed features are covered with relevant tests and all existing tests pass
|
|
27
|
+
```
|
|
28
|
+
yarn test
|
|
29
|
+
```
|
|
30
|
+
5) Go to the GitHub repo in your web browser and issue a new pull request.
|
|
31
|
+
6) Maintainers will review your code and possibly ask for changes before your code is pulled into the main repository. We'll check that all tests pass, review the coding style, and check for general code correctness. If everything is OK, we'll merge your pull request.
|
|
32
|
+
|
|
33
|
+
## All done!
|
|
34
|
+
|
|
35
|
+
If you have any questions feel free to post them in the issues section.
|
|
36
|
+
Thanks for your time and code!
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title Calldata
|
|
6
|
+
* @dev Library for efficient slicing of calldata byte arrays without memory copying.
|
|
7
|
+
* Provides gas-optimized operations for extracting portions of calldata directly.
|
|
8
|
+
*/
|
|
9
|
+
library Calldata {
|
|
10
|
+
/**
|
|
11
|
+
* @dev Returns a slice of the calldata bytes from `begin` to `end` index.
|
|
12
|
+
* Warning: Does not perform bounds checking for gas efficiency.
|
|
13
|
+
* @param calls The calldata bytes to slice.
|
|
14
|
+
* @param begin The starting index of the slice.
|
|
15
|
+
* @param end The ending index of the slice (exclusive).
|
|
16
|
+
* @return res The sliced calldata bytes.
|
|
17
|
+
*/
|
|
18
|
+
function slice(bytes calldata calls, uint256 begin, uint256 end) internal pure returns (bytes calldata res) {
|
|
19
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
20
|
+
res.offset := add(calls.offset, begin)
|
|
21
|
+
res.length := sub(end, begin)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @dev Returns a slice of the calldata bytes from `begin` to `end` index with bounds checking.
|
|
27
|
+
* Reverts with the provided exception selector if `end` exceeds the calldata length.
|
|
28
|
+
* @param calls The calldata bytes to slice.
|
|
29
|
+
* @param begin The starting index of the slice.
|
|
30
|
+
* @param end The ending index of the slice (exclusive).
|
|
31
|
+
* @param exception The error selector to revert with if bounds check fails.
|
|
32
|
+
* @return res The sliced calldata bytes.
|
|
33
|
+
*/
|
|
34
|
+
function slice(bytes calldata calls, uint256 begin, uint256 end, bytes4 exception) internal pure returns (bytes calldata res) {
|
|
35
|
+
if (end > calls.length) {
|
|
36
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
37
|
+
mstore(0, exception)
|
|
38
|
+
revert(0, 4)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
42
|
+
res.offset := add(calls.offset, begin)
|
|
43
|
+
res.length := sub(end, begin)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @dev Returns a slice of the calldata bytes from `begin` index to the end.
|
|
49
|
+
* Warning: Does not perform bounds checking for gas efficiency.
|
|
50
|
+
* @param calls The calldata bytes to slice.
|
|
51
|
+
* @param begin The starting index of the slice.
|
|
52
|
+
* @return res The sliced calldata bytes from begin to the end.
|
|
53
|
+
*/
|
|
54
|
+
function slice(bytes calldata calls, uint256 begin) internal pure returns (bytes calldata res) {
|
|
55
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
56
|
+
res.offset := add(calls.offset, begin)
|
|
57
|
+
res.length := sub(calls.length, begin)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @dev Returns a slice of the calldata bytes from `begin` index to the end with bounds checking.
|
|
63
|
+
* Reverts with the provided exception selector if `begin` exceeds the calldata length.
|
|
64
|
+
* @param calls The calldata bytes to slice.
|
|
65
|
+
* @param begin The starting index of the slice.
|
|
66
|
+
* @param exception The error selector to revert with if bounds check fails.
|
|
67
|
+
* @return res The sliced calldata bytes from begin to the end.
|
|
68
|
+
*/
|
|
69
|
+
function slice(bytes calldata calls, uint256 begin, bytes4 exception) internal pure returns (bytes calldata res) {
|
|
70
|
+
if (begin > calls.length) {
|
|
71
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
72
|
+
mstore(0, exception)
|
|
73
|
+
revert(0, 4)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
77
|
+
res.offset := add(calls.offset, begin)
|
|
78
|
+
res.length := sub(calls.length, begin)
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title CalldataPtr
|
|
6
|
+
* @dev User-defined value type representing a pointer to calldata with offset and length packed into a single uint256.
|
|
7
|
+
* The upper 128 bits store the offset, and the lower 128 bits store the length.
|
|
8
|
+
*/
|
|
9
|
+
type CalldataPtr is uint256;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @title CalldataPtrLib
|
|
13
|
+
* @dev Library for working with CalldataPtr type, providing conversion functions
|
|
14
|
+
* between calldata bytes and the packed pointer representation.
|
|
15
|
+
*/
|
|
16
|
+
library CalldataPtrLib {
|
|
17
|
+
using CalldataPtrLib for CalldataPtr;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @dev Creates a CalldataPtr from calldata bytes by packing offset and length.
|
|
21
|
+
* @param data The calldata bytes to create a pointer from.
|
|
22
|
+
* @return ptr The packed CalldataPtr containing offset in upper 128 bits and length in lower 128 bits.
|
|
23
|
+
*/
|
|
24
|
+
function from(bytes calldata data) internal pure returns (CalldataPtr ptr) {
|
|
25
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
26
|
+
ptr := or(shl(128, data.offset), data.length)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @dev Converts a CalldataPtr back to calldata bytes by unpacking offset and length.
|
|
32
|
+
* @param ptr The CalldataPtr to convert.
|
|
33
|
+
* @return data The calldata bytes referenced by the pointer.
|
|
34
|
+
*/
|
|
35
|
+
function toBytes(CalldataPtr ptr) internal pure returns (bytes calldata data) {
|
|
36
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
37
|
+
data.offset := shr(128, ptr)
|
|
38
|
+
data.length := and(ptr, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title tuint256
|
|
6
|
+
* @dev Struct wrapper for uint256 to enable transient storage operations.
|
|
7
|
+
*/
|
|
8
|
+
/// forge-lint: disable-next-line(pascal-case-struct)
|
|
9
|
+
struct tuint256 { // solhint-disable-line contract-name-camelcase
|
|
10
|
+
uint256 _raw;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @title taddress
|
|
15
|
+
* @dev Struct wrapper for address to enable transient storage operations.
|
|
16
|
+
*/
|
|
17
|
+
/// forge-lint: disable-next-line(pascal-case-struct)
|
|
18
|
+
struct taddress { // solhint-disable-line contract-name-camelcase
|
|
19
|
+
address _raw;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @title tbytes32
|
|
24
|
+
* @dev Struct wrapper for bytes32 to enable transient storage operations.
|
|
25
|
+
*/
|
|
26
|
+
/// forge-lint: disable-next-line(pascal-case-struct)
|
|
27
|
+
struct tbytes32 { // solhint-disable-line contract-name-camelcase
|
|
28
|
+
bytes32 _raw;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @title TransientLib
|
|
33
|
+
* @dev Library for drop-in replacement of uint256, address, and bytes32 with transient storage.
|
|
34
|
+
* Transient storage (EIP-1153) is cleared after each transaction, providing gas-efficient
|
|
35
|
+
* temporary storage for use cases like reentrancy guards.
|
|
36
|
+
*
|
|
37
|
+
* Example usage:
|
|
38
|
+
* ```solidity
|
|
39
|
+
* contract MagicProtocol {
|
|
40
|
+
* using TransientLib for tuint256;
|
|
41
|
+
*
|
|
42
|
+
* error ReentrantCallDetected();
|
|
43
|
+
*
|
|
44
|
+
* struct ReentrancyLock {
|
|
45
|
+
* tuint256 counter;
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* ReentrancyLock private _lock;
|
|
49
|
+
*
|
|
50
|
+
* modifier nonReentrable {
|
|
51
|
+
* require(_lock.counter.inc() == 1, ReentrantCallDetected());
|
|
52
|
+
* _;
|
|
53
|
+
* _lock.counter.dec();
|
|
54
|
+
* }
|
|
55
|
+
*
|
|
56
|
+
* function someMagicFunction(...) external nonReentrable {
|
|
57
|
+
* ...
|
|
58
|
+
* target.callSomeSuspiciousFunction(...);
|
|
59
|
+
* ...
|
|
60
|
+
* }
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
library TransientLib {
|
|
65
|
+
/**
|
|
66
|
+
* @dev Error thrown when increment would cause overflow.
|
|
67
|
+
*/
|
|
68
|
+
error MathOverflow();
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @dev Error thrown when decrement would cause underflow.
|
|
72
|
+
*/
|
|
73
|
+
error MathUnderflow();
|
|
74
|
+
|
|
75
|
+
// ===================== Functions for tuint256 =====================
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @dev Loads a uint256 value from transient storage.
|
|
79
|
+
* @param self The transient uint256 storage slot.
|
|
80
|
+
* @return ret The value stored in transient storage.
|
|
81
|
+
*/
|
|
82
|
+
function tload(tuint256 storage self) internal view returns (uint256 ret) {
|
|
83
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
84
|
+
ret := tload(self.slot)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @dev Stores a uint256 value to transient storage.
|
|
90
|
+
* @param self The transient uint256 storage slot.
|
|
91
|
+
* @param value The value to store.
|
|
92
|
+
*/
|
|
93
|
+
function tstore(tuint256 storage self, uint256 value) internal {
|
|
94
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
95
|
+
tstore(self.slot, value)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* @dev Increments the transient uint256 value by 1 with overflow check.
|
|
101
|
+
* Reverts with MathOverflow if the value would overflow.
|
|
102
|
+
* @param self The transient uint256 storage slot.
|
|
103
|
+
* @return incremented The new value after incrementing.
|
|
104
|
+
*/
|
|
105
|
+
function inc(tuint256 storage self) internal returns (uint256 incremented) {
|
|
106
|
+
return inc(self, TransientLib.MathOverflow.selector);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @dev Increments the transient uint256 value by 1 with custom overflow error.
|
|
111
|
+
* @param self The transient uint256 storage slot.
|
|
112
|
+
* @param exception The error selector to revert with on overflow.
|
|
113
|
+
* @return incremented The new value after incrementing.
|
|
114
|
+
*/
|
|
115
|
+
function inc(tuint256 storage self, bytes4 exception) internal returns (uint256 incremented) {
|
|
116
|
+
incremented = unsafeInc(self);
|
|
117
|
+
if (incremented == 0) {
|
|
118
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
119
|
+
mstore(0, exception)
|
|
120
|
+
revert(0, 4)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @dev Increments the transient uint256 value by 1 without overflow check.
|
|
127
|
+
* Warning: May overflow silently.
|
|
128
|
+
* @param self The transient uint256 storage slot.
|
|
129
|
+
* @return incremented The new value after incrementing.
|
|
130
|
+
*/
|
|
131
|
+
function unsafeInc(tuint256 storage self) internal returns (uint256 incremented) {
|
|
132
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
133
|
+
incremented := add(tload(self.slot), 1)
|
|
134
|
+
tstore(self.slot, incremented)
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* @dev Decrements the transient uint256 value by 1 with underflow check.
|
|
140
|
+
* Reverts with MathUnderflow if the value would underflow.
|
|
141
|
+
* @param self The transient uint256 storage slot.
|
|
142
|
+
* @return decremented The new value after decrementing.
|
|
143
|
+
*/
|
|
144
|
+
function dec(tuint256 storage self) internal returns (uint256 decremented) {
|
|
145
|
+
return dec(self, TransientLib.MathUnderflow.selector);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @dev Decrements the transient uint256 value by 1 with custom underflow error.
|
|
150
|
+
* @param self The transient uint256 storage slot.
|
|
151
|
+
* @param exception The error selector to revert with on underflow.
|
|
152
|
+
* @return decremented The new value after decrementing.
|
|
153
|
+
*/
|
|
154
|
+
function dec(tuint256 storage self, bytes4 exception) internal returns (uint256 decremented) {
|
|
155
|
+
decremented = unsafeDec(self);
|
|
156
|
+
if (decremented == type(uint256).max) {
|
|
157
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
158
|
+
mstore(0, exception)
|
|
159
|
+
revert(0, 4)
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @dev Decrements the transient uint256 value by 1 without underflow check.
|
|
166
|
+
* Warning: May underflow silently.
|
|
167
|
+
* @param self The transient uint256 storage slot.
|
|
168
|
+
* @return decremented The new value after decrementing.
|
|
169
|
+
*/
|
|
170
|
+
function unsafeDec(tuint256 storage self) internal returns (uint256 decremented) {
|
|
171
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
172
|
+
decremented := sub(tload(self.slot), 1)
|
|
173
|
+
tstore(self.slot, decremented)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @dev Initializes with a value if zero, then adds to the transient uint256.
|
|
179
|
+
* @param self The transient uint256 storage slot.
|
|
180
|
+
* @param initialValue The value to use if current value is zero.
|
|
181
|
+
* @param toAdd The value to add.
|
|
182
|
+
* @return result The final value after initialization and addition.
|
|
183
|
+
*/
|
|
184
|
+
function initAndAdd(tuint256 storage self, uint256 initialValue, uint256 toAdd) internal returns (uint256 result) {
|
|
185
|
+
result = tload(self);
|
|
186
|
+
if (result == 0) {
|
|
187
|
+
result = initialValue;
|
|
188
|
+
}
|
|
189
|
+
result += toAdd;
|
|
190
|
+
tstore(self, result);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// ===================== Functions for taddress =====================
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* @dev Loads an address value from transient storage.
|
|
197
|
+
* @param self The transient address storage slot.
|
|
198
|
+
* @return ret The address stored in transient storage.
|
|
199
|
+
*/
|
|
200
|
+
function tload(taddress storage self) internal view returns (address ret) {
|
|
201
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
202
|
+
ret := tload(self.slot)
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* @dev Stores an address value to transient storage.
|
|
208
|
+
* @param self The transient address storage slot.
|
|
209
|
+
* @param value The address to store.
|
|
210
|
+
*/
|
|
211
|
+
function tstore(taddress storage self, address value) internal {
|
|
212
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
213
|
+
tstore(self.slot, value)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// ===================== Functions for tbytes32 =====================
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @dev Loads a bytes32 value from transient storage.
|
|
221
|
+
* @param self The transient bytes32 storage slot.
|
|
222
|
+
* @return ret The bytes32 value stored in transient storage.
|
|
223
|
+
*/
|
|
224
|
+
function tload(tbytes32 storage self) internal view returns (bytes32 ret) {
|
|
225
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
226
|
+
ret := tload(self.slot)
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* @dev Stores a bytes32 value to transient storage.
|
|
232
|
+
* @param self The transient bytes32 storage slot.
|
|
233
|
+
* @param value The bytes32 value to store.
|
|
234
|
+
*/
|
|
235
|
+
function tstore(tbytes32 storage self, bytes32 value) internal {
|
|
236
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
237
|
+
tstore(self.slot, value)
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import { TransientLib, tuint256 } from "./Transient.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title TransientLock
|
|
8
|
+
* @dev Struct representing a transient storage-based lock for reentrancy protection.
|
|
9
|
+
*/
|
|
10
|
+
struct TransientLock {
|
|
11
|
+
tuint256 _raw;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @title TransientLockLib
|
|
16
|
+
* @dev Library for managing transient storage locks.
|
|
17
|
+
* Provides gas-efficient reentrancy protection using EIP-1153 transient storage.
|
|
18
|
+
*/
|
|
19
|
+
library TransientLockLib {
|
|
20
|
+
using TransientLib for tuint256;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @dev Error thrown when attempting to lock an already locked state.
|
|
24
|
+
*/
|
|
25
|
+
error UnexpectedLock();
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @dev Error thrown when attempting to unlock a non-locked state.
|
|
29
|
+
*/
|
|
30
|
+
error UnexpectedUnlock();
|
|
31
|
+
|
|
32
|
+
uint256 constant private _UNLOCKED = 0;
|
|
33
|
+
uint256 constant private _LOCKED = 1;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @dev Acquires the lock. Reverts with UnexpectedLock if already locked.
|
|
37
|
+
* @param self The transient lock to acquire.
|
|
38
|
+
*/
|
|
39
|
+
function lock(TransientLock storage self) internal {
|
|
40
|
+
require(self._raw.inc() == _LOCKED, UnexpectedLock());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @dev Releases the lock. Reverts with UnexpectedUnlock if not currently locked.
|
|
45
|
+
* @param self The transient lock to release.
|
|
46
|
+
*/
|
|
47
|
+
function unlock(TransientLock storage self) internal {
|
|
48
|
+
self._raw.dec(UnexpectedUnlock.selector);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @dev Checks if the lock is currently held.
|
|
53
|
+
* @param self The transient lock to check.
|
|
54
|
+
* @return True if the lock is held, false otherwise.
|
|
55
|
+
*/
|
|
56
|
+
function isLocked(TransientLock storage self) internal view returns (bool) {
|
|
57
|
+
return self._raw.tload() == _LOCKED;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title Multicall
|
|
6
|
+
* @dev Contract that enables batching multiple calls to itself in a single transaction.
|
|
7
|
+
* Uses delegatecall to execute each call in the context of the inheriting contract.
|
|
8
|
+
*/
|
|
9
|
+
contract Multicall {
|
|
10
|
+
/**
|
|
11
|
+
* @dev Executes multiple calls to this contract in a single transaction.
|
|
12
|
+
* Each call is executed via delegatecall, preserving the contract's storage context.
|
|
13
|
+
* If any call fails, the entire transaction reverts with the original error.
|
|
14
|
+
* @param data An array of encoded function calls to execute.
|
|
15
|
+
*/
|
|
16
|
+
function multicall(bytes[] calldata data) external {
|
|
17
|
+
for (uint256 i = 0; i < data.length; i++) {
|
|
18
|
+
(bool success,) = address(this).delegatecall(data[i]); // solhint-disable-line avoid-low-level-calls
|
|
19
|
+
if (!success) {
|
|
20
|
+
assembly ("memory-safe") { // solhint-disable-line no-inline-assembly
|
|
21
|
+
let ptr := mload(0x40)
|
|
22
|
+
returndatacopy(ptr, 0, returndatasize())
|
|
23
|
+
revert(ptr, returndatasize())
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import { TransientLock, TransientLockLib } from "../libraries/TransientLock.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title ReentrancyGuard
|
|
8
|
+
* @dev Abstract contract providing reentrancy protection using transient storage locks (EIP-1153).
|
|
9
|
+
* More gas-efficient than traditional storage-based reentrancy guards.
|
|
10
|
+
*
|
|
11
|
+
* Use the built-in `_lock` for simple cases:
|
|
12
|
+
* ```solidity
|
|
13
|
+
* function swap(...) external nonReentrant {
|
|
14
|
+
* // protected code
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* function doMagic(...) external onlyNonReentrantCall {
|
|
18
|
+
* // must be called within a nonReentrant context
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Or use custom locks for more granular control:
|
|
23
|
+
* ```solidity
|
|
24
|
+
* TransientLock private _myLock;
|
|
25
|
+
*
|
|
26
|
+
* function swap(...) external nonReentrantLock(_myLock) {
|
|
27
|
+
* // protected code
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* function doMagic(...) external onlyNonReentrantCallLock(_myLock) {
|
|
31
|
+
* // must be called within a nonReentrantLock(_myLock) context
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
abstract contract ReentrancyGuard {
|
|
36
|
+
using TransientLockLib for TransientLock;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @dev Error thrown when a function requiring nonReentrant context is called outside of one.
|
|
40
|
+
*/
|
|
41
|
+
error MissingNonReentrantModifier();
|
|
42
|
+
|
|
43
|
+
TransientLock private _lock;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @dev Modifier that prevents reentrancy using the built-in lock.
|
|
47
|
+
* Acquires the lock before execution and releases it after.
|
|
48
|
+
*/
|
|
49
|
+
modifier nonReentrant {
|
|
50
|
+
_lock.lock();
|
|
51
|
+
_;
|
|
52
|
+
_lock.unlock();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @dev Modifier that ensures the function is called within a nonReentrant context.
|
|
57
|
+
* Reverts with MissingNonReentrantModifier if the built-in lock is not held.
|
|
58
|
+
*/
|
|
59
|
+
modifier onlyNonReentrantCall {
|
|
60
|
+
require(_inNonReentrantCall(), MissingNonReentrantModifier());
|
|
61
|
+
_;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @dev Modifier that prevents reentrancy using a custom lock.
|
|
66
|
+
* Acquires the specified lock before execution and releases it after.
|
|
67
|
+
* @param lock The custom TransientLock to use.
|
|
68
|
+
*/
|
|
69
|
+
modifier nonReentrantLock(TransientLock storage lock) {
|
|
70
|
+
lock.lock();
|
|
71
|
+
_;
|
|
72
|
+
lock.unlock();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @dev Modifier that ensures the function is called within a context where the specified lock is held.
|
|
77
|
+
* Reverts with MissingNonReentrantModifier if the lock is not held.
|
|
78
|
+
* @param lock The custom TransientLock to check.
|
|
79
|
+
*/
|
|
80
|
+
modifier onlyNonReentrantCallLock(TransientLock storage lock) {
|
|
81
|
+
require(lock.isLocked(), MissingNonReentrantModifier());
|
|
82
|
+
_;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @dev Returns true if currently within a nonReentrant call using the built-in lock.
|
|
87
|
+
* @return True if the built-in lock is currently held, false otherwise.
|
|
88
|
+
*/
|
|
89
|
+
function _inNonReentrantCall() internal view returns (bool) {
|
|
90
|
+
return _lock.isLocked();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title Simulator
|
|
6
|
+
* @dev Contract that allows simulating delegatecalls without persisting state changes.
|
|
7
|
+
* Always reverts with the simulation result, enabling off-chain simulation of transactions.
|
|
8
|
+
*/
|
|
9
|
+
contract Simulator {
|
|
10
|
+
/**
|
|
11
|
+
* @dev Error containing the simulation result.
|
|
12
|
+
* @param delegatee The address that was called via delegatecall.
|
|
13
|
+
* @param data The calldata that was passed to the delegatee.
|
|
14
|
+
* @param success Whether the delegatecall succeeded.
|
|
15
|
+
* @param result The return data or revert reason from the delegatecall.
|
|
16
|
+
*/
|
|
17
|
+
error Simulated(address delegatee, bytes data, bool success, bytes result);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @dev Simulates a delegatecall to the target address and reverts with the result.
|
|
21
|
+
* This function always reverts, returning the simulation outcome in the error data.
|
|
22
|
+
* Can be used for off-chain simulation to preview transaction effects.
|
|
23
|
+
* @param delegatee The address to delegatecall to.
|
|
24
|
+
* @param data The calldata to pass to the delegatee.
|
|
25
|
+
*/
|
|
26
|
+
function simulate(address delegatee, bytes calldata data) external payable {
|
|
27
|
+
(bool success, bytes memory result) = delegatee.delegatecall(data); // solhint-disable-line avoid-low-level-calls
|
|
28
|
+
revert Simulated(delegatee, data, success, result);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -145,7 +145,8 @@ class Networks {
|
|
|
145
145
|
this.registerCustom('linea', 59144, process.env.LINEA_RPC_URL, process.env.LINEA_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.lineascan.build/api', 'https://lineascan.build/', 'london');
|
|
146
146
|
this.registerCustom('sonic', 146, process.env.SONIC_RPC_URL, process.env.SONIC_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.sonicscan.org/api', 'https://sonicscan.org/', 'shanghai');
|
|
147
147
|
this.registerCustom('unichain', 130, process.env.UNICHAIN_RPC_URL, process.env.UNICHAIN_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.uniscan.xyz/api', 'https://uniscan.xyz/', 'shanghai');
|
|
148
|
-
this.
|
|
148
|
+
this.registerCustom('zksync', 324, process.env.ZKSYNC_RPC_URL, process.env.ZKSYNC_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.zksync.network/api', 'https://era.zksync.network/', 'paris');
|
|
149
|
+
this.register('zksync-zkevm', 324, process.env.ZKSYNC_RPC_URL, process.env.ZKSYNC_PRIVATE_KEY || privateKey, 'zksyncmainnet', etherscanApiKey, 'paris', 'mainnet');
|
|
149
150
|
this.register('zksyncTest', 300, process.env.ZKSYNC_TEST_RPC_URL, process.env.ZKSYNC_TEST_PRIVATE_KEY || privateKey, 'zksyncsepolia', etherscanApiKey, 'paris', 'sepolia');
|
|
150
151
|
// For 'zksyncFork' network you should use zksync fork node: https://github.com/matter-labs/era-test-node
|
|
151
152
|
this.register('zksyncFork', 260, process.env.ZKSYNC_FORK_RPC_URL, process.env.ZKSYNC_FORK_PRIVATE_KEY || privateKey, 'zksyncfork', 'none', 'paris', process.env.ZKSYNC_LOCAL_ETH_NETWORK || 'mainnet');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networks.js","sourceRoot":"","sources":["../../hardhat-setup/networks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"networks.js","sourceRoot":"","sources":["../../hardhat-setup/networks.ts"],"names":[],"mappings":"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"}
|