@safe-global/protocol-kit 1.2.0 → 2.0.0-alpha.0
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/LICENSE.md +9 -9
- package/README.md +1033 -1033
- package/dist/src/Safe.d.ts +57 -8
- package/dist/src/Safe.js +192 -34
- package/dist/src/Safe.js.map +1 -1
- package/dist/src/adapters/ethers/EthersAdapter.d.ts +6 -10
- package/dist/src/adapters/ethers/EthersAdapter.js +18 -20
- package/dist/src/adapters/ethers/EthersAdapter.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerEthersContract.d.ts +3 -3
- package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerEthersContract.js +1 -1
- package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandler_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/CreateCall/CreateCallEthersContract.d.ts +3 -3
- package/dist/src/adapters/ethers/contracts/CreateCall/CreateCallEthersContract.js +5 -4
- package/dist/src/adapters/ethers/contracts/CreateCall/CreateCallEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/CreateCall/v1.4.1/CreateCallEthersContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSend/MultiSendEthersContract.d.ts +4 -4
- package/dist/src/adapters/ethers/contracts/MultiSend/MultiSendEthersContract.js +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSend/MultiSendEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSend/v1.4.1/MultiSendContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract.d.ts +3 -3
- package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract.js +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/v1.4.1/MultiSendCallOnlyContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/SafeContractEthers.d.ts +7 -8
- package/dist/src/adapters/ethers/contracts/Safe/SafeContractEthers.js +8 -8
- package/dist/src/adapters/ethers/contracts/Safe/SafeContractEthers.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.0.0/SafeContract_V1_0_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.0.0/SafeContract_V1_0_0_Ethers.js +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.0.0/SafeContract_V1_0_0_Ethers.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.1.1/SafeContract_V1_1_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.1.1/SafeContract_V1_1_1_Ethers.js +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.1.1/SafeContract_V1_1_1_Ethers.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.2.0/SafeContract_V1_2_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.2.0/SafeContract_V1_2_0_Ethers.js +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.2.0/SafeContract_V1_2_0_Ethers.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.3.0/SafeContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.3.0/SafeContract_V1_3_0_Ethers.js +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.3.0/SafeContract_V1_3_0_Ethers.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.4.1/SafeContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.4.1/SafeContract_V1_4_1_Ethers.js +1 -1
- package/dist/src/adapters/ethers/contracts/Safe/v1.4.1/SafeContract_V1_4_1_Ethers.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/SafeProxyFactoryEthersContract.d.ts +7 -7
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/SafeProxyFactoryEthersContract.js +9 -9
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/SafeProxyFactoryEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_V1_0_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_V1_1_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SignMessageLib/SignMessageLibEthersContract.d.ts +3 -3
- package/dist/src/adapters/ethers/contracts/SignMessageLib/SignMessageLibEthersContract.js +4 -3
- package/dist/src/adapters/ethers/contracts/SignMessageLib/SignMessageLibEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SimulateTxAccessor/SimulateTxAccessorEthersContract.d.ts +3 -3
- package/dist/src/adapters/ethers/contracts/SimulateTxAccessor/SimulateTxAccessorEthersContract.js +1 -1
- package/dist/src/adapters/ethers/contracts/SimulateTxAccessor/SimulateTxAccessorEthersContract.js.map +1 -1
- package/dist/src/adapters/ethers/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_V1_3_0_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_V1_4_1_Ethers.d.ts +1 -1
- package/dist/src/adapters/ethers/contracts/contractInstancesEthers.d.ts +9 -10
- package/dist/src/adapters/ethers/contracts/contractInstancesEthers.js +22 -22
- package/dist/src/adapters/ethers/contracts/contractInstancesEthers.js.map +1 -1
- package/dist/src/adapters/ethers/types.d.ts +2 -2
- package/dist/src/adapters/ethers/utils/index.d.ts +4 -7
- package/dist/src/adapters/ethers/utils/index.js +5 -6
- package/dist/src/adapters/ethers/utils/index.js.map +1 -1
- package/dist/src/adapters/web3/Web3Adapter.d.ts +2 -3
- package/dist/src/adapters/web3/Web3Adapter.js +19 -21
- package/dist/src/adapters/web3/Web3Adapter.js.map +1 -1
- package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerWeb3Contract.d.ts +1 -1
- package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerWeb3Contract.js +1 -1
- package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/CreateCall/CreateCallWeb3Contract.d.ts +1 -1
- package/dist/src/adapters/web3/contracts/CreateCall/CreateCallWeb3Contract.js +1 -1
- package/dist/src/adapters/web3/contracts/CreateCall/CreateCallWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/MultiSend/MultiSendWeb3Contract.d.ts +1 -1
- package/dist/src/adapters/web3/contracts/MultiSend/MultiSendWeb3Contract.js +1 -1
- package/dist/src/adapters/web3/contracts/MultiSend/MultiSendWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/MultiSendCallOnly/MultiSendCallOnlyWeb3Contract.d.ts +1 -1
- package/dist/src/adapters/web3/contracts/MultiSendCallOnly/MultiSendCallOnlyWeb3Contract.js +1 -1
- package/dist/src/adapters/web3/contracts/MultiSendCallOnly/MultiSendCallOnlyWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/Safe/SafeContractWeb3.d.ts +2 -3
- package/dist/src/adapters/web3/contracts/Safe/SafeContractWeb3.js +2 -3
- package/dist/src/adapters/web3/contracts/Safe/SafeContractWeb3.js.map +1 -1
- package/dist/src/adapters/web3/contracts/SafeProxyFactory/SafeProxyFactoryWeb3Contract.d.ts +3 -3
- package/dist/src/adapters/web3/contracts/SafeProxyFactory/SafeProxyFactoryWeb3Contract.js +6 -8
- package/dist/src/adapters/web3/contracts/SafeProxyFactory/SafeProxyFactoryWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/SignMessageLib/SignMessageLibWeb3Contract.d.ts +1 -1
- package/dist/src/adapters/web3/contracts/SignMessageLib/SignMessageLibWeb3Contract.js +1 -1
- package/dist/src/adapters/web3/contracts/SignMessageLib/SignMessageLibWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/SimulateTxAccessor/SimulateTxAccessorWeb3Contract.d.ts +1 -1
- package/dist/src/adapters/web3/contracts/SimulateTxAccessor/SimulateTxAccessorWeb3Contract.js +1 -1
- package/dist/src/adapters/web3/contracts/SimulateTxAccessor/SimulateTxAccessorWeb3Contract.js.map +1 -1
- package/dist/src/adapters/web3/contracts/contractInstancesWeb3.d.ts +6 -6
- package/dist/src/adapters/web3/contracts/contractInstancesWeb3.js.map +1 -1
- package/dist/src/contracts/config.d.ts +3 -3
- package/dist/src/contracts/config.js +11 -11
- package/dist/src/contracts/config.js.map +1 -1
- package/dist/src/contracts/safeDeploymentContracts.d.ts +10 -10
- package/dist/src/contracts/safeDeploymentContracts.js +29 -29
- package/dist/src/contracts/safeDeploymentContracts.js.map +1 -1
- package/dist/src/contracts/utils.d.ts +23 -2
- package/dist/src/contracts/utils.js +72 -12
- package/dist/src/contracts/utils.js.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.js +10 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/managers/contractManager.d.ts +1 -1
- package/dist/src/managers/contractManager.js +26 -21
- package/dist/src/managers/contractManager.js.map +1 -1
- package/dist/src/managers/fallbackHandlerManager.js +1 -1
- package/dist/src/managers/fallbackHandlerManager.js.map +1 -1
- package/dist/src/managers/guardManager.js +1 -1
- package/dist/src/managers/guardManager.js.map +1 -1
- package/dist/src/managers/ownerManager.js +2 -2
- package/dist/src/managers/ownerManager.js.map +1 -1
- package/dist/src/safeFactory/index.d.ts +5 -5
- package/dist/src/safeFactory/index.js +22 -21
- package/dist/src/safeFactory/index.js.map +1 -1
- package/dist/src/types/index.d.ts +8 -8
- package/dist/src/utils/eip-3770/config.d.ts +1 -1
- package/dist/src/utils/eip-3770/config.js +155 -132
- package/dist/src/utils/eip-3770/config.js.map +1 -1
- package/dist/src/utils/eip-3770/index.d.ts +3 -3
- package/dist/src/utils/eip-712/index.js +1 -1
- package/dist/src/utils/eip-712/index.js.map +1 -1
- package/dist/src/utils/erc-20/index.d.ts +33 -0
- package/dist/src/utils/erc-20/index.js +77 -0
- package/dist/src/utils/erc-20/index.js.map +1 -0
- package/dist/src/utils/signatures/utils.js +1 -1
- package/dist/src/utils/transactions/SafeTransaction.js +2 -2
- package/dist/src/utils/transactions/SafeTransaction.js.map +1 -1
- package/dist/src/utils/transactions/gas.d.ts +48 -1
- package/dist/src/utils/transactions/gas.js +312 -41
- package/dist/src/utils/transactions/gas.js.map +1 -1
- package/dist/src/utils/transactions/utils.js +11 -15
- package/dist/src/utils/transactions/utils.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/typechain/src/ethers-v6/v1.0.0/Gnosis_safe.d.ts +496 -0
- package/dist/typechain/src/ethers-v6/v1.0.0/Gnosis_safe.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.0.0/Proxy_factory.d.ts +75 -0
- package/dist/typechain/src/ethers-v6/v1.0.0/Proxy_factory.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.0.0/common.d.ts +50 -0
- package/dist/typechain/src/ethers-v6/v1.0.0/common.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/Gnosis_safe__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/Gnosis_safe__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/Gnosis_safe__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/Proxy_factory__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/Proxy_factory__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/Proxy_factory__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/index.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/index.js.map +1 -1
- package/dist/typechain/src/ethers-v6/v1.1.1/Gnosis_safe.d.ts +604 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/Gnosis_safe.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/Multi_send.d.ts +29 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/Multi_send.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/Multi_send.ts +91 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/Proxy_factory.d.ts +109 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/Proxy_factory.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/common.d.ts +50 -0
- package/dist/typechain/src/ethers-v6/v1.1.1/common.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Gnosis_safe__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Gnosis_safe__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Gnosis_safe__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Multi_send__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Multi_send__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Multi_send__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Proxy_factory__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Proxy_factory__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/Proxy_factory__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/index.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/index.js.map +1 -1
- package/dist/typechain/src/ethers-v6/v1.2.0/Gnosis_safe.d.ts +612 -0
- package/dist/typechain/src/ethers-v6/v1.2.0/Gnosis_safe.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.2.0/common.d.ts +50 -0
- package/dist/typechain/src/ethers-v6/v1.2.0/common.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/factories/Gnosis_safe__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/factories/Gnosis_safe__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/factories/Gnosis_safe__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/factories/index.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/index.js.map +1 -1
- package/dist/typechain/src/ethers-v6/v1.3.0/Compatibility_fallback_handler.d.ts +194 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Compatibility_fallback_handler.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Create_call.d.ts +67 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Create_call.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Gnosis_safe.d.ts +703 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Gnosis_safe.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Multi_send.d.ts +25 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Multi_send.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Multi_send.ts +87 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Multi_send_call_only.d.ts +25 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Multi_send_call_only.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Proxy_factory.d.ts +110 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Proxy_factory.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Sign_message_lib.d.ts +45 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Sign_message_lib.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Simulate_tx_accessor.d.ts +55 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/Simulate_tx_accessor.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/common.d.ts +50 -0
- package/dist/typechain/src/ethers-v6/v1.3.0/common.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Compatibility_fallback_handler__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Compatibility_fallback_handler__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Compatibility_fallback_handler__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Create_call__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Create_call__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Create_call__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Gnosis_safe__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Gnosis_safe__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Gnosis_safe__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Multi_send__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5/v1.4.1 → ethers-v6/v1.3.0}/factories/Multi_send__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Multi_send__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5/v1.4.1 → ethers-v6/v1.3.0}/factories/Multi_send_call_only__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Multi_send_call_only__factory.js +3 -3
- package/dist/typechain/src/ethers-v6/v1.3.0/factories/Multi_send_call_only__factory.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Proxy_factory__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Proxy_factory__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Proxy_factory__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Sign_message_lib__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5/v1.4.1 → ethers-v6/v1.3.0}/factories/Sign_message_lib__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Sign_message_lib__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Simulate_tx_accessor__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Simulate_tx_accessor__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/Simulate_tx_accessor__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/index.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/index.js.map +1 -1
- package/dist/typechain/src/ethers-v6/v1.4.1/Compatibility_fallback_handler.d.ts +200 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Compatibility_fallback_handler.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Create_call.d.ts +67 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Create_call.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Multi_send.d.ts +25 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Multi_send.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Multi_send.ts +87 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Multi_send_call_only.d.ts +25 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Multi_send_call_only.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Safe.d.ts +685 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Safe.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Safe_proxy_factory.d.ts +96 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Safe_proxy_factory.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Sign_message_lib.d.ts +45 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Sign_message_lib.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Simulate_tx_accessor.d.ts +55 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/Simulate_tx_accessor.js.map +1 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/common.d.ts +50 -0
- package/dist/typechain/src/ethers-v6/v1.4.1/common.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Compatibility_fallback_handler__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Compatibility_fallback_handler__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Compatibility_fallback_handler__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Create_call__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Create_call__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Create_call__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Multi_send__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5/v1.3.0 → ethers-v6/v1.4.1}/factories/Multi_send__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Multi_send__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5/v1.3.0 → ethers-v6/v1.4.1}/factories/Multi_send_call_only__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Multi_send_call_only__factory.js +3 -3
- package/dist/typechain/src/ethers-v6/v1.4.1/factories/Multi_send_call_only__factory.js.map +1 -0
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Safe__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Safe__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Safe__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Safe_proxy_factory__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Safe_proxy_factory__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Safe_proxy_factory__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Sign_message_lib__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5/v1.3.0 → ethers-v6/v1.4.1}/factories/Sign_message_lib__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Sign_message_lib__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Simulate_tx_accessor__factory.d.ts +2 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Simulate_tx_accessor__factory.js +3 -3
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/Simulate_tx_accessor__factory.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/index.js.map +1 -1
- package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/index.js.map +1 -1
- package/dist/typechain/tests/ethers-v6/v1.2.0/@gnosis.pm/index.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule.d.ts +158 -0
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule.js.map +1 -1
- package/dist/typechain/tests/ethers-v6/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule.d.ts +167 -0
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/index.js.map +1 -1
- package/dist/typechain/tests/ethers-v6/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/index.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/index.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.2.0/common.d.ts +50 -0
- package/dist/typechain/tests/ethers-v6/v1.2.0/common.js.map +1 -0
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule__factory.d.ts +13 -12
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule__factory.js +7 -10
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule__factory.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule__factory.d.ts +13 -12
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule__factory.js +7 -10
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule__factory.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/contracts/ERC20Mintable__factory.d.ts +13 -12
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/contracts/ERC20Mintable__factory.js +7 -10
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/contracts/ERC20Mintable__factory.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/contracts/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/index.js.map +1 -1
- package/dist/typechain/tests/ethers-v6/v1.2.0/openzeppelin-solidity/build/contracts/ERC20Mintable.d.ts +211 -0
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/build/contracts/ERC20Mintable.js.map +1 -1
- package/dist/typechain/tests/ethers-v6/v1.2.0/openzeppelin-solidity/build/contracts/index.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.2.0/openzeppelin-solidity/build/index.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.2.0/openzeppelin-solidity/index.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.3.0/DebugTransactionGuard.d.ts +154 -0
- package/dist/typechain/tests/ethers-v6/v1.3.0/DebugTransactionGuard.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.3.0/common.d.ts +50 -0
- package/dist/typechain/tests/ethers-v6/v1.3.0/common.js.map +1 -0
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/factories/DebugTransactionGuard__factory.d.ts +13 -12
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/factories/DebugTransactionGuard__factory.js +7 -10
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/factories/DebugTransactionGuard__factory.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/factories/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/index.js.map +1 -1
- package/dist/typechain/tests/ethers-v6/v1.4.1/DebugTransactionGuard.d.ts +168 -0
- package/dist/typechain/tests/ethers-v6/v1.4.1/DebugTransactionGuard.js.map +1 -0
- package/dist/typechain/tests/ethers-v6/v1.4.1/common.d.ts +50 -0
- package/dist/typechain/tests/ethers-v6/v1.4.1/common.js.map +1 -0
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/factories/DebugTransactionGuard__factory.d.ts +13 -12
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/factories/DebugTransactionGuard__factory.js +7 -10
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/factories/DebugTransactionGuard__factory.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/factories/index.js.map +1 -1
- package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/index.js.map +1 -1
- package/package.json +94 -96
- package/dist/typechain/src/ethers-v5/v1.0.0/Gnosis_safe.d.ts +0 -534
- package/dist/typechain/src/ethers-v5/v1.0.0/Gnosis_safe.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.0.0/Proxy_factory.d.ts +0 -97
- package/dist/typechain/src/ethers-v5/v1.0.0/Proxy_factory.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.0.0/common.d.ts +0 -22
- package/dist/typechain/src/ethers-v5/v1.0.0/common.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.1.1/Gnosis_safe.d.ts +0 -611
- package/dist/typechain/src/ethers-v5/v1.1.1/Gnosis_safe.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.1.1/Multi_send.d.ts +0 -50
- package/dist/typechain/src/ethers-v5/v1.1.1/Multi_send.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.1.1/Multi_send.ts +0 -102
- package/dist/typechain/src/ethers-v5/v1.1.1/Proxy_factory.d.ts +0 -138
- package/dist/typechain/src/ethers-v5/v1.1.1/Proxy_factory.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.1.1/common.d.ts +0 -22
- package/dist/typechain/src/ethers-v5/v1.1.1/common.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.2.0/Gnosis_safe.d.ts +0 -619
- package/dist/typechain/src/ethers-v5/v1.2.0/Gnosis_safe.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.2.0/common.d.ts +0 -22
- package/dist/typechain/src/ethers-v5/v1.2.0/common.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Compatibility_fallback_handler.d.ts +0 -170
- package/dist/typechain/src/ethers-v5/v1.3.0/Compatibility_fallback_handler.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Create_call.d.ts +0 -83
- package/dist/typechain/src/ethers-v5/v1.3.0/Create_call.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Gnosis_safe.d.ts +0 -661
- package/dist/typechain/src/ethers-v5/v1.3.0/Gnosis_safe.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Multi_send.d.ts +0 -50
- package/dist/typechain/src/ethers-v5/v1.3.0/Multi_send.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Multi_send.ts +0 -102
- package/dist/typechain/src/ethers-v5/v1.3.0/Multi_send_call_only.d.ts +0 -50
- package/dist/typechain/src/ethers-v5/v1.3.0/Multi_send_call_only.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Proxy_factory.d.ts +0 -142
- package/dist/typechain/src/ethers-v5/v1.3.0/Proxy_factory.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Sign_message_lib.d.ts +0 -69
- package/dist/typechain/src/ethers-v5/v1.3.0/Sign_message_lib.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/Simulate_tx_accessor.d.ts +0 -63
- package/dist/typechain/src/ethers-v5/v1.3.0/Simulate_tx_accessor.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/common.d.ts +0 -22
- package/dist/typechain/src/ethers-v5/v1.3.0/common.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.3.0/factories/Multi_send_call_only__factory.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Compatibility_fallback_handler.d.ts +0 -162
- package/dist/typechain/src/ethers-v5/v1.4.1/Compatibility_fallback_handler.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Create_call.d.ts +0 -83
- package/dist/typechain/src/ethers-v5/v1.4.1/Create_call.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Multi_send.d.ts +0 -50
- package/dist/typechain/src/ethers-v5/v1.4.1/Multi_send.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Multi_send.ts +0 -102
- package/dist/typechain/src/ethers-v5/v1.4.1/Multi_send_call_only.d.ts +0 -50
- package/dist/typechain/src/ethers-v5/v1.4.1/Multi_send_call_only.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Safe.d.ts +0 -640
- package/dist/typechain/src/ethers-v5/v1.4.1/Safe.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Safe_proxy_factory.d.ts +0 -126
- package/dist/typechain/src/ethers-v5/v1.4.1/Safe_proxy_factory.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Sign_message_lib.d.ts +0 -69
- package/dist/typechain/src/ethers-v5/v1.4.1/Sign_message_lib.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/Simulate_tx_accessor.d.ts +0 -63
- package/dist/typechain/src/ethers-v5/v1.4.1/Simulate_tx_accessor.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/common.d.ts +0 -22
- package/dist/typechain/src/ethers-v5/v1.4.1/common.js.map +0 -1
- package/dist/typechain/src/ethers-v5/v1.4.1/factories/Multi_send_call_only__factory.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/@gnosis.pm/index.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule.d.ts +0 -304
- package/dist/typechain/tests/ethers-v5/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule.d.ts +0 -345
- package/dist/typechain/tests/ethers-v5/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/index.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/index.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/common.d.ts +0 -22
- package/dist/typechain/tests/ethers-v5/v1.2.0/common.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/openzeppelin-solidity/build/contracts/ERC20Mintable.d.ts +0 -248
- package/dist/typechain/tests/ethers-v5/v1.2.0/openzeppelin-solidity/build/contracts/index.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/openzeppelin-solidity/build/index.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.2.0/openzeppelin-solidity/index.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.3.0/DebugTransactionGuard.d.ts +0 -132
- package/dist/typechain/tests/ethers-v5/v1.3.0/DebugTransactionGuard.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.3.0/common.d.ts +0 -22
- package/dist/typechain/tests/ethers-v5/v1.3.0/common.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.4.1/DebugTransactionGuard.d.ts +0 -144
- package/dist/typechain/tests/ethers-v5/v1.4.1/DebugTransactionGuard.js.map +0 -1
- package/dist/typechain/tests/ethers-v5/v1.4.1/common.d.ts +0 -22
- package/dist/typechain/tests/ethers-v5/v1.4.1/common.js.map +0 -1
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/Gnosis_safe.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/Proxy_factory.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/common.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/factories/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.0.0/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/Gnosis_safe.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/Multi_send.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/Proxy_factory.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/common.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/factories/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.1.1/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/Gnosis_safe.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/common.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/factories/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/factories/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.2.0/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Compatibility_fallback_handler.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Create_call.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Gnosis_safe.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Multi_send.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Multi_send_call_only.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Proxy_factory.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Sign_message_lib.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/Simulate_tx_accessor.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/common.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/factories/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.3.0/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Compatibility_fallback_handler.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Create_call.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Multi_send.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Multi_send_call_only.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Safe.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Safe_proxy_factory.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Sign_message_lib.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/Simulate_tx_accessor.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/common.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/factories/index.js +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/index.d.ts +0 -0
- /package/dist/typechain/src/{ethers-v5 → ethers-v6}/v1.4.1/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/DailyLimitModule.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/SocialRecoveryModule.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/build/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/@gnosis.pm/safe-contracts-v1.2.0/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/common.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/contracts/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/build/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/@gnosis.pm/safe-contracts-v1.2.0/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/contracts/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/contracts/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/build/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/factories/openzeppelin-solidity/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/build/contracts/ERC20Mintable.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/build/contracts/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/build/contracts/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/build/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/build/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.2.0/openzeppelin-solidity/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/DebugTransactionGuard.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/common.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/factories/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/factories/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.3.0/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/DebugTransactionGuard.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/common.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/factories/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/factories/index.js +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/index.d.ts +0 -0
- /package/dist/typechain/tests/{ethers-v5 → ethers-v6}/v1.4.1/index.js +0 -0
|
@@ -1,28 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.estimateTxGas = exports.estimateGas = void 0;
|
|
4
|
-
const bignumber_1 = require("@ethersproject/bignumber");
|
|
6
|
+
exports.estimateSafeDeploymentGas = exports.estimateSafeTxGas = exports.estimateTxBaseGas = exports.estimateTxGas = exports.estimateGas = void 0;
|
|
5
7
|
const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
|
|
8
|
+
const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
|
|
9
|
+
const constants_1 = require("../constants");
|
|
6
10
|
const safeDeploymentContracts_1 = require("../../contracts/safeDeploymentContracts");
|
|
11
|
+
// Every byte == 00 -> 4 Gas cost
|
|
12
|
+
const CALL_DATA_ZERO_BYTE_GAS_COST = 4;
|
|
13
|
+
// Every byte != 00 -> 16 Gas cost (68 before Istanbul)
|
|
14
|
+
const CALL_DATA_BYTE_GAS_COST = 16;
|
|
15
|
+
// gas cost initialization of a Safe
|
|
16
|
+
const INITIZATION_GAS_COST = 20000;
|
|
17
|
+
// increment nonce gas cost
|
|
18
|
+
const INCREMENT_NONCE_GAS_COST = 5000;
|
|
19
|
+
// Keccak gas cost for the hash of the Safe transaction
|
|
20
|
+
const HASH_GENERATION_GAS_COST = 1500;
|
|
21
|
+
// ecrecover gas cost for ecdsa ~= 4K gas, we use 6K
|
|
22
|
+
const ECRECOVER_GAS_COST = 6000;
|
|
23
|
+
// transfer gas cost
|
|
24
|
+
const TRANSAFER_GAS_COST = 32000;
|
|
25
|
+
// numbers < 256 (0x00(31*2)..ff) are 192 -> 31 * 4 + 1 * CALL_DATA_BYTE_GAS_COST
|
|
26
|
+
// numbers < 65535 (0x(30*2)..ffff) are 256 -> 30 * 4 + 2 * CALL_DATA_BYTE_GAS_COST
|
|
27
|
+
// Calculate gas for signatures
|
|
28
|
+
// (array count (3 -> r, s, v) + ecrecover costs) * signature count
|
|
29
|
+
const GAS_COST_PER_SIGNATURE = 1 * CALL_DATA_BYTE_GAS_COST + 2 * 32 * CALL_DATA_BYTE_GAS_COST + ECRECOVER_GAS_COST;
|
|
7
30
|
function estimateDataGasCosts(data) {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
31
|
+
const bytes = data.match(/.{2}/g);
|
|
32
|
+
return bytes.reduce((gasCost, currentByte) => {
|
|
33
|
+
if (currentByte === '0x') {
|
|
34
|
+
return gasCost + 0;
|
|
11
35
|
}
|
|
12
|
-
if (
|
|
13
|
-
return
|
|
36
|
+
if (currentByte === '00') {
|
|
37
|
+
return gasCost + CALL_DATA_ZERO_BYTE_GAS_COST;
|
|
14
38
|
}
|
|
15
|
-
return
|
|
16
|
-
};
|
|
17
|
-
return data.match(/.{2}/g).reduce(reducer, 0);
|
|
39
|
+
return gasCost + CALL_DATA_BYTE_GAS_COST;
|
|
40
|
+
}, 0);
|
|
18
41
|
}
|
|
19
42
|
async function estimateGas(safeVersion, safeContract, ethAdapter, to, valueInWei, data, operation, customContracts) {
|
|
20
|
-
var _a;
|
|
21
43
|
const chainId = await ethAdapter.getChainId();
|
|
22
44
|
const simulateTxAccessorContract = await (0, safeDeploymentContracts_1.getSimulateTxAccessorContract)({
|
|
23
45
|
ethAdapter,
|
|
24
46
|
safeVersion,
|
|
25
|
-
customContracts: customContracts
|
|
47
|
+
customContracts: customContracts?.[chainId.toString()]
|
|
26
48
|
});
|
|
27
49
|
const transactionDataToEstimate = simulateTxAccessorContract.encode('simulate', [
|
|
28
50
|
to,
|
|
@@ -34,45 +56,25 @@ async function estimateGas(safeVersion, safeContract, ethAdapter, to, valueInWei
|
|
|
34
56
|
await simulateTxAccessorContract.getAddress(),
|
|
35
57
|
transactionDataToEstimate
|
|
36
58
|
]);
|
|
37
|
-
const safeAddress = safeContract.getAddress();
|
|
59
|
+
const safeAddress = await safeContract.getAddress();
|
|
38
60
|
const transactionToEstimateGas = {
|
|
39
61
|
to: safeAddress,
|
|
40
62
|
value: '0',
|
|
41
63
|
data: safeFunctionToEstimate,
|
|
42
64
|
from: safeAddress
|
|
43
65
|
};
|
|
44
|
-
// TO-DO: Improve decoding
|
|
45
|
-
/*
|
|
46
|
-
const simulateAndRevertResponse = ethAdapter.decodeParameters(
|
|
47
|
-
['bool', 'bytes'],
|
|
48
|
-
encodedResponse
|
|
49
|
-
)
|
|
50
|
-
const returnedData = ethAdapter.decodeParameters(['uint256', 'bool', 'bytes'], simulateAndRevertResponse[1])
|
|
51
|
-
*/
|
|
52
66
|
try {
|
|
53
67
|
const encodedResponse = await ethAdapter.call(transactionToEstimateGas);
|
|
54
68
|
return Number('0x' + encodedResponse.slice(184).slice(0, 10)).toString();
|
|
55
69
|
}
|
|
56
70
|
catch (error) {
|
|
57
|
-
|
|
58
|
-
if ((_a = error === null || error === void 0 ? void 0 : error.error) === null || _a === void 0 ? void 0 : _a.body) {
|
|
59
|
-
const revertData = JSON.parse(error.error.body).error.data;
|
|
60
|
-
if (revertData && revertData.startsWith('Reverted ')) {
|
|
61
|
-
const [, encodedResponse] = revertData.split('Reverted ');
|
|
62
|
-
const safeTxGas = Number('0x' + encodedResponse.slice(184).slice(0, 10)).toString();
|
|
63
|
-
return safeTxGas;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Web3
|
|
67
|
-
const [, encodedResponse] = error.message.split('return data: ');
|
|
68
|
-
const safeTxGas = Number('0x' + encodedResponse.slice(184).slice(0, 10)).toString();
|
|
69
|
-
return safeTxGas;
|
|
71
|
+
return parseSafeTxGasErrorResponse(error);
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
exports.estimateGas = estimateGas;
|
|
73
75
|
async function estimateTxGas(safeContract, ethAdapter, to, valueInWei, data, operation) {
|
|
74
|
-
let txGasEstimation =
|
|
75
|
-
const safeAddress = safeContract.getAddress();
|
|
76
|
+
let txGasEstimation = 0;
|
|
77
|
+
const safeAddress = await safeContract.getAddress();
|
|
76
78
|
const estimateData = safeContract.encode('requiredTxGas', [
|
|
77
79
|
to,
|
|
78
80
|
valueInWei,
|
|
@@ -85,10 +87,10 @@ async function estimateTxGas(safeContract, ethAdapter, to, valueInWei, data, ope
|
|
|
85
87
|
from: safeAddress,
|
|
86
88
|
data: estimateData
|
|
87
89
|
});
|
|
88
|
-
txGasEstimation =
|
|
90
|
+
txGasEstimation = Number('0x' + estimateResponse.substring(138)) + 10000;
|
|
89
91
|
}
|
|
90
92
|
catch (error) { }
|
|
91
|
-
if (txGasEstimation
|
|
93
|
+
if (txGasEstimation > 0) {
|
|
92
94
|
const dataGasEstimation = estimateDataGasCosts(estimateData);
|
|
93
95
|
let additionalGas = 10000;
|
|
94
96
|
for (let i = 0; i < 10; i++) {
|
|
@@ -98,17 +100,17 @@ async function estimateTxGas(safeContract, ethAdapter, to, valueInWei, data, ope
|
|
|
98
100
|
from: safeAddress,
|
|
99
101
|
data: estimateData,
|
|
100
102
|
gasPrice: '0',
|
|
101
|
-
gasLimit: txGasEstimation
|
|
103
|
+
gasLimit: (txGasEstimation + dataGasEstimation + additionalGas).toString()
|
|
102
104
|
});
|
|
103
105
|
if (estimateResponse !== '0x') {
|
|
104
106
|
break;
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
catch (error) { }
|
|
108
|
-
txGasEstimation = txGasEstimation
|
|
110
|
+
txGasEstimation = txGasEstimation + additionalGas;
|
|
109
111
|
additionalGas *= 2;
|
|
110
112
|
}
|
|
111
|
-
return txGasEstimation
|
|
113
|
+
return (txGasEstimation + additionalGas).toString();
|
|
112
114
|
}
|
|
113
115
|
try {
|
|
114
116
|
const estimateGas = await ethAdapter.estimateGas({
|
|
@@ -127,4 +129,273 @@ async function estimateTxGas(safeContract, ethAdapter, to, valueInWei, data, ope
|
|
|
127
129
|
}
|
|
128
130
|
}
|
|
129
131
|
exports.estimateTxGas = estimateTxGas;
|
|
132
|
+
/**
|
|
133
|
+
* This function estimates the baseGas of a Safe transaction.
|
|
134
|
+
* The baseGas includes costs for:
|
|
135
|
+
* - Generation of the Safe transaction hash (txHash)
|
|
136
|
+
* - Increasing the nonce of the Safe
|
|
137
|
+
* - Verifying the signatures of the Safe transaction
|
|
138
|
+
* - Payment to relayers for executing the transaction
|
|
139
|
+
* - Emitting events ExecutionSuccess or ExecutionFailure
|
|
140
|
+
*
|
|
141
|
+
* Note: it does not include the transaction execution cost (safeTxGas)
|
|
142
|
+
*
|
|
143
|
+
* @async
|
|
144
|
+
* @function estimateTxBaseGas
|
|
145
|
+
* @param {Safe} safe - The Safe instance containing all the information about the safe.
|
|
146
|
+
* @param {SafeTransaction} safeTransaction - The transaction for which the baseGas is to be estimated.
|
|
147
|
+
* @returns {Promise<string>} A Promise that resolves with the estimated baseGas as a string.
|
|
148
|
+
*/
|
|
149
|
+
async function estimateTxBaseGas(safe, safeTransaction) {
|
|
150
|
+
const safeTransactionData = safeTransaction.data;
|
|
151
|
+
const { to, value, data, operation, safeTxGas, gasToken, refundReceiver } = safeTransactionData;
|
|
152
|
+
const safeThreshold = await safe.getThreshold();
|
|
153
|
+
const safeNonce = await safe.getNonce();
|
|
154
|
+
const signaturesGasCost = safeThreshold * GAS_COST_PER_SIGNATURE;
|
|
155
|
+
const encodeSafeTxGas = safeTxGas || 0;
|
|
156
|
+
const encodeBaseGas = 0;
|
|
157
|
+
const gasPrice = 1;
|
|
158
|
+
const encodeGasToken = gasToken || constants_1.ZERO_ADDRESS;
|
|
159
|
+
const encodeRefundReceiver = refundReceiver || constants_1.ZERO_ADDRESS;
|
|
160
|
+
const signatures = '0x';
|
|
161
|
+
const safeVersion = await safe.getContractVersion();
|
|
162
|
+
const ethAdapter = safe.getEthAdapter();
|
|
163
|
+
const isL1SafeSingleton = safe.getContractManager().isL1SafeSingleton;
|
|
164
|
+
const chainId = await safe.getChainId();
|
|
165
|
+
const customContracts = safe.getContractManager().contractNetworks?.[chainId.toString()];
|
|
166
|
+
const safeSingletonContract = await (0, safeDeploymentContracts_1.getSafeContract)({
|
|
167
|
+
ethAdapter,
|
|
168
|
+
safeVersion,
|
|
169
|
+
isL1SafeSingleton,
|
|
170
|
+
customContracts
|
|
171
|
+
});
|
|
172
|
+
const execTransactionData = safeSingletonContract.encode('execTransaction', [
|
|
173
|
+
to,
|
|
174
|
+
value,
|
|
175
|
+
data,
|
|
176
|
+
operation,
|
|
177
|
+
encodeSafeTxGas,
|
|
178
|
+
encodeBaseGas,
|
|
179
|
+
gasPrice,
|
|
180
|
+
encodeGasToken,
|
|
181
|
+
encodeRefundReceiver,
|
|
182
|
+
signatures
|
|
183
|
+
]);
|
|
184
|
+
// If nonce == 0, nonce storage has to be initialized
|
|
185
|
+
const isSafeInitialized = safeNonce !== 0;
|
|
186
|
+
const incrementNonceGasCost = isSafeInitialized ? INCREMENT_NONCE_GAS_COST : INITIZATION_GAS_COST;
|
|
187
|
+
let baseGas = signaturesGasCost +
|
|
188
|
+
estimateDataGasCosts(execTransactionData) +
|
|
189
|
+
incrementNonceGasCost +
|
|
190
|
+
HASH_GENERATION_GAS_COST;
|
|
191
|
+
// Add additional gas costs
|
|
192
|
+
baseGas > 65536 ? (baseGas += 64) : (baseGas += 128);
|
|
193
|
+
// Base tx costs, transfer costs...
|
|
194
|
+
baseGas += TRANSAFER_GAS_COST;
|
|
195
|
+
return baseGas.toString();
|
|
196
|
+
}
|
|
197
|
+
exports.estimateTxBaseGas = estimateTxBaseGas;
|
|
198
|
+
/**
|
|
199
|
+
* This function estimates the safeTxGas of a Safe transaction.
|
|
200
|
+
* The safeTxGas value represents the amount of gas required to execute the Safe transaction itself.
|
|
201
|
+
* It does not include costs such as signature verification, transaction hash generation, nonce incrementing, and so on.
|
|
202
|
+
*
|
|
203
|
+
* The estimation method differs based on the version of the Safe:
|
|
204
|
+
* - For versions >= 1.3.0, the simulate function defined in the simulateTxAccessor.sol Contract is used.
|
|
205
|
+
* - For versions < 1.3.0, the deprecated requiredTxGas method defined in the GnosisSafe.sol contract is used.
|
|
206
|
+
*
|
|
207
|
+
* @async
|
|
208
|
+
* @function estimateSafeTxGas
|
|
209
|
+
* @param {Safe} safe - The Safe instance containing all the necessary information about the safe.
|
|
210
|
+
* @param {SafeTransaction} safeTransaction - The transaction for which the safeTxGas is to be estimated.
|
|
211
|
+
* @returns {Promise<string>} A Promise that resolves with the estimated safeTxGas as a string.
|
|
212
|
+
*
|
|
213
|
+
*/
|
|
214
|
+
async function estimateSafeTxGas(safe, safeTransaction) {
|
|
215
|
+
const safeVersion = await safe.getContractVersion();
|
|
216
|
+
if ((0, satisfies_1.default)(safeVersion, '>=1.3.0')) {
|
|
217
|
+
const safeTxGas = await estimateSafeTxGasWithSimulate(safe, safeTransaction);
|
|
218
|
+
return addExtraGasForSafety(safeTxGas);
|
|
219
|
+
}
|
|
220
|
+
// deprecated method to estimate the safeTxGas of a Safe transaction
|
|
221
|
+
const safeTxGas = await estimateSafeTxGasWithRequiredTxGas(safe, safeTransaction);
|
|
222
|
+
return addExtraGasForSafety(safeTxGas);
|
|
223
|
+
}
|
|
224
|
+
exports.estimateSafeTxGas = estimateSafeTxGas;
|
|
225
|
+
/**
|
|
226
|
+
* Increase the given safeTxGas gas amount by 5% as a security margin to avoid running out of gas.
|
|
227
|
+
* In some contexts, the safeTxGas might be underestimated, leading to 'out of gas' errors during the Safe transaction execution
|
|
228
|
+
*
|
|
229
|
+
* @param {string} safeTxGas - The original safeTxGas gas amount.
|
|
230
|
+
* @returns {string} The new safeTxGas gas amount, increased by 5% rounded.
|
|
231
|
+
*/
|
|
232
|
+
function addExtraGasForSafety(safeTxGas) {
|
|
233
|
+
const INCREASE_GAS_FACTOR = 1.05; // increase the gas by 5% as a security margin
|
|
234
|
+
return Math.round(Number(safeTxGas) * INCREASE_GAS_FACTOR).toString();
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* This function estimates the safeTxGas of a Safe transaction.
|
|
238
|
+
* Using the deprecated method of requiredTxGas defined in the GnosisSafe contract. This method is meant to be used for Safe versions < 1.3.0.
|
|
239
|
+
* see: https://github.com/safe-global/safe-contracts/blob/v1.2.0/contracts/GnosisSafe.sol#L276
|
|
240
|
+
*
|
|
241
|
+
* @async
|
|
242
|
+
* @function estimateSafeTxGasWithRequiredTxGas
|
|
243
|
+
* @param {Safe} safe - The Safe instance containing all the necessary information about the safe.
|
|
244
|
+
* @param {SafeTransaction} safeTransaction - The transaction for which the safeTxGas is to be estimated.
|
|
245
|
+
* @returns {Promise<string>} A Promise that resolves with the estimated safeTxGas as a string.
|
|
246
|
+
*
|
|
247
|
+
*/
|
|
248
|
+
async function estimateSafeTxGasWithRequiredTxGas(safe, safeTransaction) {
|
|
249
|
+
const isSafeDeployed = await safe.isSafeDeployed();
|
|
250
|
+
const safeAddress = await safe.getAddress();
|
|
251
|
+
const safeVersion = await safe.getContractVersion();
|
|
252
|
+
const ethAdapter = safe.getEthAdapter();
|
|
253
|
+
const isL1SafeSingleton = safe.getContractManager().isL1SafeSingleton;
|
|
254
|
+
const chainId = await safe.getChainId();
|
|
255
|
+
const customContracts = safe.getContractManager().contractNetworks?.[chainId.toString()];
|
|
256
|
+
const safeSingletonContract = await (0, safeDeploymentContracts_1.getSafeContract)({
|
|
257
|
+
ethAdapter,
|
|
258
|
+
safeVersion,
|
|
259
|
+
isL1SafeSingleton,
|
|
260
|
+
customContracts
|
|
261
|
+
});
|
|
262
|
+
const transactionDataToEstimate = safeSingletonContract.encode('requiredTxGas', [
|
|
263
|
+
safeTransaction.data.to,
|
|
264
|
+
safeTransaction.data.value,
|
|
265
|
+
safeTransaction.data.data,
|
|
266
|
+
safeTransaction.data.operation
|
|
267
|
+
]);
|
|
268
|
+
const to = isSafeDeployed ? safeAddress : await safeSingletonContract.getAddress();
|
|
269
|
+
const transactionToEstimateGas = {
|
|
270
|
+
to,
|
|
271
|
+
value: '0',
|
|
272
|
+
data: transactionDataToEstimate,
|
|
273
|
+
from: safeAddress
|
|
274
|
+
};
|
|
275
|
+
try {
|
|
276
|
+
const encodedResponse = await ethAdapter.call(transactionToEstimateGas);
|
|
277
|
+
const safeTxGas = '0x' + encodedResponse.slice(-32);
|
|
278
|
+
return safeTxGas;
|
|
279
|
+
// if the call throws an error we try to parse the returned value
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
try {
|
|
283
|
+
const revertData = error?.info?.error?.data;
|
|
284
|
+
if (revertData && revertData.startsWith('Reverted ')) {
|
|
285
|
+
const [, safeTxGas] = revertData.split('Reverted ');
|
|
286
|
+
return Number(safeTxGas).toString();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
return '0';
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return '0';
|
|
294
|
+
}
|
|
295
|
+
// TO-DO: Improve decoding
|
|
296
|
+
/*
|
|
297
|
+
const simulateAndRevertResponse = ethAdapter.decodeParameters(
|
|
298
|
+
['bool', 'bytes'],
|
|
299
|
+
encodedResponse
|
|
300
|
+
)
|
|
301
|
+
const returnedData = ethAdapter.decodeParameters(['uint256', 'bool', 'bytes'], simulateAndRevertResponse[1])
|
|
302
|
+
*/
|
|
303
|
+
function decodeSafeTxGas(encodedSafeTxGas) {
|
|
304
|
+
return Number('0x' + encodedSafeTxGas.slice(184).slice(0, 10)).toString();
|
|
305
|
+
}
|
|
306
|
+
function parseSafeTxGasErrorResponse(error) {
|
|
307
|
+
// Ethers v6
|
|
308
|
+
const Ethersv6RevertData = error?.info?.error?.data;
|
|
309
|
+
if (Ethersv6RevertData) {
|
|
310
|
+
return decodeSafeTxGas(Ethersv6RevertData);
|
|
311
|
+
}
|
|
312
|
+
// Web3 v1
|
|
313
|
+
const [, encodedResponse] = error.message.split('return data: ');
|
|
314
|
+
const safeTxGas = decodeSafeTxGas(encodedResponse);
|
|
315
|
+
return safeTxGas;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* This function estimates the safeTxGas of a Safe transaction.
|
|
319
|
+
* It uses the simulate function defined in the SimulateTxAccessor contract. This method is meant to be used for Safe versions >= 1.3.0.
|
|
320
|
+
*
|
|
321
|
+
* @async
|
|
322
|
+
* @function estimateSafeTxGasWithSimulate
|
|
323
|
+
* @param {Safe} safe - The Safe instance containing all the necessary information about the safe.
|
|
324
|
+
* @param {SafeTransaction} safeTransaction - The transaction for which the safeTxGas is to be estimated.
|
|
325
|
+
* @returns {Promise<string>} A Promise that resolves with the estimated safeTxGas as a string.
|
|
326
|
+
*
|
|
327
|
+
*/
|
|
328
|
+
async function estimateSafeTxGasWithSimulate(safe, safeTransaction) {
|
|
329
|
+
const isSafeDeployed = await safe.isSafeDeployed();
|
|
330
|
+
const safeAddress = await safe.getAddress();
|
|
331
|
+
const safeVersion = await safe.getContractVersion();
|
|
332
|
+
const ethAdapter = safe.getEthAdapter();
|
|
333
|
+
const chainId = await safe.getChainId();
|
|
334
|
+
const customContracts = safe.getContractManager().contractNetworks?.[chainId.toString()];
|
|
335
|
+
const isL1SafeSingleton = safe.getContractManager().isL1SafeSingleton;
|
|
336
|
+
const safeSingletonContract = await (0, safeDeploymentContracts_1.getSafeContract)({
|
|
337
|
+
ethAdapter,
|
|
338
|
+
safeVersion,
|
|
339
|
+
isL1SafeSingleton,
|
|
340
|
+
customContracts
|
|
341
|
+
});
|
|
342
|
+
// new version of the estimation
|
|
343
|
+
const simulateTxAccessorContract = await (0, safeDeploymentContracts_1.getSimulateTxAccessorContract)({
|
|
344
|
+
ethAdapter,
|
|
345
|
+
safeVersion,
|
|
346
|
+
customContracts
|
|
347
|
+
});
|
|
348
|
+
const transactionDataToEstimate = simulateTxAccessorContract.encode('simulate', [
|
|
349
|
+
safeTransaction.data.to,
|
|
350
|
+
safeTransaction.data.value,
|
|
351
|
+
safeTransaction.data.data,
|
|
352
|
+
safeTransaction.data.operation
|
|
353
|
+
]);
|
|
354
|
+
// if the Safe is not deployed we can use the singleton address to simulate
|
|
355
|
+
const to = isSafeDeployed ? safeAddress : await safeSingletonContract.getAddress();
|
|
356
|
+
const safeFunctionToEstimate = safeSingletonContract.encode('simulateAndRevert', [
|
|
357
|
+
await simulateTxAccessorContract.getAddress(),
|
|
358
|
+
transactionDataToEstimate
|
|
359
|
+
]);
|
|
360
|
+
const transactionToEstimateGas = {
|
|
361
|
+
to,
|
|
362
|
+
value: '0',
|
|
363
|
+
data: safeFunctionToEstimate,
|
|
364
|
+
from: safeAddress
|
|
365
|
+
};
|
|
366
|
+
try {
|
|
367
|
+
const encodedResponse = await ethAdapter.call(transactionToEstimateGas);
|
|
368
|
+
const safeTxGas = decodeSafeTxGas(encodedResponse);
|
|
369
|
+
return safeTxGas;
|
|
370
|
+
// if the call throws an error we try to parse the returned value
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
return parseSafeTxGasErrorResponse(error);
|
|
374
|
+
}
|
|
375
|
+
return '0';
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* This function estimates the gas cost of deploying a Safe.
|
|
379
|
+
* It considers also the costs of the Safe setup call.
|
|
380
|
+
* The setup call includes tasks such as setting up initial owners, defining the threshold, and initializing the salt nonce used for address generation.
|
|
381
|
+
*
|
|
382
|
+
* @async
|
|
383
|
+
* @function estimateSafeDeploymentGas
|
|
384
|
+
* @param {Safe} safe - The Safe object containing all necessary information about the safe, including owners, threshold, and saltNonce.
|
|
385
|
+
* @returns {Promise<string>} A Promise that resolves with the estimated gas cost of the safe deployment as a string.
|
|
386
|
+
*/
|
|
387
|
+
async function estimateSafeDeploymentGas(safe) {
|
|
388
|
+
const isSafeDeployed = await safe.isSafeDeployed();
|
|
389
|
+
if (isSafeDeployed) {
|
|
390
|
+
return '0';
|
|
391
|
+
}
|
|
392
|
+
const ethAdapter = safe.getEthAdapter();
|
|
393
|
+
const safeDeploymentTransaction = await safe.createSafeDeploymentTransaction();
|
|
394
|
+
const estimation = await ethAdapter.estimateGas({
|
|
395
|
+
...safeDeploymentTransaction,
|
|
396
|
+
from: constants_1.ZERO_ADDRESS // if we use the Safe address the estimation always fails due to CREATE2
|
|
397
|
+
});
|
|
398
|
+
return estimation;
|
|
399
|
+
}
|
|
400
|
+
exports.estimateSafeDeploymentGas = estimateSafeDeploymentGas;
|
|
130
401
|
//# sourceMappingURL=gas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../../src/utils/transactions/gas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../../src/utils/transactions/gas.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.isSafeMultisigTransactionResponse = exports.isMetaTransactionArray = exports.decodeMultiSendData = exports.encodeMultiSendData = exports.standardizeSafeTransactionData = exports.standardizeMetaTransactionData = void 0;
|
|
7
|
-
const
|
|
8
|
-
const bytes_1 = require("@ethersproject/bytes");
|
|
9
|
-
const solidity_1 = require("@ethersproject/solidity");
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
10
8
|
const config_1 = require("../../contracts/config");
|
|
11
9
|
const utils_1 = require("../../utils");
|
|
12
10
|
const constants_1 = require("../../utils/constants");
|
|
@@ -15,26 +13,24 @@ const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
|
|
|
15
13
|
const web3_utils_1 = require("web3-utils");
|
|
16
14
|
const gas_1 = require("./gas");
|
|
17
15
|
function standardizeMetaTransactionData(tx) {
|
|
18
|
-
var _a;
|
|
19
16
|
const standardizedTxs = {
|
|
20
17
|
...tx,
|
|
21
|
-
operation:
|
|
18
|
+
operation: tx.operation ?? safe_core_sdk_types_1.OperationType.Call
|
|
22
19
|
};
|
|
23
20
|
return standardizedTxs;
|
|
24
21
|
}
|
|
25
22
|
exports.standardizeMetaTransactionData = standardizeMetaTransactionData;
|
|
26
23
|
async function standardizeSafeTransactionData({ safeContract, predictedSafe, ethAdapter, tx, contractNetworks }) {
|
|
27
|
-
var _a, _b, _c, _d, _e;
|
|
28
24
|
const standardizedTxs = {
|
|
29
25
|
to: tx.to,
|
|
30
26
|
value: tx.value,
|
|
31
27
|
data: tx.data,
|
|
32
|
-
operation:
|
|
33
|
-
baseGas:
|
|
34
|
-
gasPrice:
|
|
28
|
+
operation: tx.operation ?? safe_core_sdk_types_1.OperationType.Call,
|
|
29
|
+
baseGas: tx.baseGas ?? '0',
|
|
30
|
+
gasPrice: tx.gasPrice ?? '0',
|
|
35
31
|
gasToken: tx.gasToken || constants_1.ZERO_ADDRESS,
|
|
36
32
|
refundReceiver: tx.refundReceiver || constants_1.ZERO_ADDRESS,
|
|
37
|
-
nonce:
|
|
33
|
+
nonce: tx.nonce ?? (safeContract ? await safeContract.getNonce() : 0)
|
|
38
34
|
};
|
|
39
35
|
if (typeof tx.safeTxGas !== 'undefined') {
|
|
40
36
|
return {
|
|
@@ -44,7 +40,7 @@ async function standardizeSafeTransactionData({ safeContract, predictedSafe, eth
|
|
|
44
40
|
}
|
|
45
41
|
let safeVersion;
|
|
46
42
|
if (predictedSafe) {
|
|
47
|
-
safeVersion =
|
|
43
|
+
safeVersion = predictedSafe?.safeDeploymentConfig?.safeVersion || config_1.DEFAULT_SAFE_VERSION;
|
|
48
44
|
}
|
|
49
45
|
else {
|
|
50
46
|
if (!safeContract) {
|
|
@@ -77,8 +73,8 @@ async function standardizeSafeTransactionData({ safeContract, predictedSafe, eth
|
|
|
77
73
|
}
|
|
78
74
|
exports.standardizeSafeTransactionData = standardizeSafeTransactionData;
|
|
79
75
|
function encodeMetaTransaction(tx) {
|
|
80
|
-
const data = (0,
|
|
81
|
-
const encoded = (0,
|
|
76
|
+
const data = (0, ethers_1.getBytes)(tx.data);
|
|
77
|
+
const encoded = (0, ethers_1.solidityPacked)(['uint8', 'address', 'uint256', 'uint256', 'bytes'], [tx.operation, tx.to, tx.value, data.length, data]);
|
|
82
78
|
return encoded.slice(2);
|
|
83
79
|
}
|
|
84
80
|
function encodeMultiSendData(txs) {
|
|
@@ -86,7 +82,7 @@ function encodeMultiSendData(txs) {
|
|
|
86
82
|
}
|
|
87
83
|
exports.encodeMultiSendData = encodeMultiSendData;
|
|
88
84
|
function decodeMultiSendData(encodedData) {
|
|
89
|
-
const multiSendInterface = new
|
|
85
|
+
const multiSendInterface = new ethers_1.Interface([
|
|
90
86
|
'function multiSend(bytes memory transactions) public payable'
|
|
91
87
|
]);
|
|
92
88
|
const [decodedData] = multiSendInterface.decodeFunctionData('multiSend', encodedData);
|
|
@@ -112,7 +108,7 @@ function decodeMultiSendData(encodedData) {
|
|
|
112
108
|
}
|
|
113
109
|
exports.decodeMultiSendData = decodeMultiSendData;
|
|
114
110
|
function isMetaTransactionArray(safeTransactions) {
|
|
115
|
-
return
|
|
111
|
+
return safeTransactions?.length !== undefined;
|
|
116
112
|
}
|
|
117
113
|
exports.isMetaTransactionArray = isMetaTransactionArray;
|
|
118
114
|
function isSafeMultisigTransactionResponse(safeTransaction) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/transactions/utils.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/transactions/utils.ts"],"names":[],"mappings":"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"}
|